meryngii.neta

今日も新たな"ネタ"を求めて。

メンバ関数テンプレートで

メンバ関数テンプレートをテンプレートの中で使おうとすると、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だとなぜか通る。うーむ、名前も知らないし、イマイチよく分からない仕様だ。