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
優秀,簡潔,重點突出。感謝您的鏈接 - 我試圖沿着這些路線尋找,但永遠不會發現。 – 2011-04-28 02:10:04