Die Beschreibung kann ziemlich umwerfend sein, so direkt zu mir das Beispiel:Freund von Template-Methode in Template-Klasse, innerhalb einer Template-Klasse
#include <iostream>
#include <typeinfo>
using namespace std;
template<typename T> class fr{
static void privatestuff(){
cout<<"private of "<<typeid(T).name()<<endl;
}
public:
template<typename TT> void callsomeone(){
fr<TT>::privatestuff();
}
//template<typename TT> friend void fr<TT>::callsomeone<T>();
//template<> template<typename TT> friend void fr<TT>::callsomeone<T>();
//template<typename TT> template<> friend void fr<TT>::callsomeone<T>();
//no other combinations... how to get it?
};
int main(){
fr<bool> obj;
obj.callsomeone<int>();
}
Grundsätzlich mag ich fr der Lage sein, fr<int>::privatestuff
zu nennen. Aber ich möchte auch nicht mehr als, was benötigt wird, so machen fr<int>
Freund von nurfr<bool>::callsomeone<int>
, nicht fr<bool>::callsomeone<char>
oder andere.
Ich kann auf C++ 11 zählen, wenn das nötig ist.
Gibt es hier eine Frage? – ildjarn
Die Frage ist in einem Kommentar im Code. Was es bedeutet? Keine Ahnung ... – scientiaesthete
Willst du 'callsomeone()' ein Freund von 'fr' sein? – jrok