2011-04-27 30 views
3

我很努力地找出爲什麼具有以下代碼段的代碼不能編譯。可能有一些我不明白類模板(即typedef typename的東西),但我不認爲這就是這種情況。模擬類圍繞boost :: ptree頭痛

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平臺)錯誤是

預期主要表達之前'>'令牌

如果我int或在該行仍然不會編譯東西取代T(「之前的預期基本表達式int「)。

有什麼想法?升壓:: ptree中的文件是在http://www.boost.org/doc/libs/release/boost/property_tree/ptree.hpp

回答