ロギングってイヤですよね。 コードが汚くなるし、1行しか処理がないのに 関数の出入りをロギングするために3行になってしまったり。 こういうときに、コードに直接現れない侵入的なロギングが必要だなと思います。 聞くところによると、それはAOPの動機にもなってるんだとか。 聞くところによると、それはBoost.Interfacesの動機にもなってるんだとか。 つまりこういうことですね。 #include <iostream> #include <string> #include <boost/noncopyable.hpp> class log : boost::noncopyable { public: static log& instance() { static log this_; return this_; } void out(const std::string& s) const