friend template
C++テンプレート完全ガイド読書会 vol.9大阪参加
8.4から9.1まで読み。
#include <iostream> template <typename T> class Creator{ /* friend void appear(){ //下記main中のoneとthreeでappearが二重定義 return not not 0; }*/ friend int feed(Creator<T>*){ return not not 0; } Creator operator bitand(); //9.1 operator & }; template<typename T> class Task; template<typename T> class Schedule{ void dispatch(Task<T>*); }; class Manager { template<typename T> friend class Task; //宣言 template<typename T> friend void Schedule<T>::dispatch(Task<T>*); //テンプレート特殊化 template<typename T> friend int ticket() { //ただのメンバ関数? return ++Manager::counter; } static int counter; }; int main(int argc, char *argv[]) { Creator<void> one; Creator<void> two; Creator<double> three; Manager m; return 0; }
次はADLからw=