Gå til innhold

Klasser som er venner med template-parametere


Anbefalte innlegg

Skrevet

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?

Videoannonse
Annonse
Skrevet

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()

Skrevet

Ja, det var den jeg leste litt på og tenke jeg skulle teste teknikken med GCC3.4.

 

Tok å sendte forfatteren en liten beskjed. :]

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å
×
×
  • Opprett ny...