C++訳分からなすぎワロタ (3) typename がウザい
template<typename K, typename V> class LockedMap { public: typedef std::map<K,V> Map; typedef typename Map::value_type value_type; typedef typename Map::const_iterator const_iterator; private: Map map0; boost::mutex mtx; public: const_iterator find(const value_type &p) { boost::scoped_lock lk(mtx); return map0.find(p); } };
いくら依存名だからと言って typedef
のところで typename
が必要なのはおかしいだろ常考.どうにかしてほしい.
まぁ(C言語の時代から)文法的には typedef
は static
やら volatile
と同格の "storage class specifier" か何かだった気がするので,その辺の事情かな...
追記: volatile
は cv-qualifier だった... 代わりに extern
で.あと「文法的には typename
は」って書いてたのは間違い.こんな私にC/C++を使う資格は無くて,FORTRANでリスト処理を「やる (DO) 」刑に処されても文句は言えない.