- 276 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 23:40:11 ]
- CRTPてこんなの
template<class derived_t> class TLogPolicy { public: void log() { log_ += (static_cast<derived_t*>(this))->data_ + "\n"; }; protected: TLogPolicy() {}; private: std::string log_; }; class TManager : public TLogPolicy<TManager> { public: void test() { log(); }; private: std::string data_; friend TLogPolicy<TManager>; }; けっこう有名なテクニックだとおもうけど?
|

|