メンバ関数テンプレートで
メンバ関数テンプレートをテンプレートの中で使おうとすると、templateキーワードが必要なときがある。
#include <iostream> #include <boost/tuple/tuple.hpp> template <class T> class A { public: void f() { x.template get<0>(); // ここ } private: boost::tuple<int, double, char> x; }; int main() { A<float> a; a.f(); }
でもVC++ 8.0だとなぜか通る。うーむ、名前も知らないし、イマイチよく分からない仕様だ。