次のスニペットのコードがコンパイルされない理由を見つけるのに苦労しています。クラステンプレートについて私が理解していないことがあるかもしれません(つまり、typedef typenameのこと)が、この特定のケースではそうではないと思います。
template<typename data_type>
class GlobalStore {
private:
typedef boost::property_tree::basic_ptree<
std::string,
data_type,
std::less<std::string>
> _StorageTreeType;
_StorageTreeType _store;
public:
// snip
template<typename T>
const T Get(_StorageTreeType & st, const std::string & name)
{
return st.get<T>(name); //Compilation chokes here
}
};
テンプレート化されたクラスの外ではありますが、まったく同じセットアップを使用しました(ただし、上記とまったく同じ行を使用しています)。コンパイラ(GCC / MingW)エラーは
'>'
トークンの前に期待される一次式
その行のまたは何かに置き換えT
てint
も、コンパイルされません(「前に期待される一次式int
」)。
何かご意見は?Boost::ptreeのドキュメントはhttp://www.boost.org/doc/libs/release/boost/property_tree/ptree.hppにあります