Gå til innhold

Klasser som er venner med template-parametere


Anbefalte innlegg

Hi there,

Bruker GCC 3.4 og har støtt på et problem.

 

Dette er egentlig ikke lov i følge standaren, men det er alikevell en nyttig sak som har fungert tidligere:

 

// "Type2Type"
template<typename T>
struct Type {
typedef T type;
}; // struct Type

template<class T>
class Bah {
typedef typename Type<T>::type the_friend;
friend class the_friend;
}; // class Bah

 

Noen som vet om noen andre omveier som gir samme effekt?

Lenke til kommentar
Videoannonse
Annonse

Uhm .. fannt ut selv:

 

#include <iostream>

using namespace std;

// "Type2Type"
template<typename T>
struct Type {
typedef T type;
}; // struct Type


template <class T>
class Bah {
public:
Bah()
{
 test = 123;
} // constructor

friend class Type<T>::type;


private:
int test;
}; // class Bah


class A {
public:
A(Bah<A>& bah)
{
 cout << "Bah::test: " << bah.test << endl;
} // constructor
}; // class A


int main()
{
Bah<A> bah;
A a(bah);	
return(0);
} // main()

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...