提供的代碼如下:C++/templates/GCC 4.0 bug?
template<class _ResClass, class _ResLoader=DefaultLoader>
class Resource
: public BaseResource
{
private:
_ResClass data_;
public:
explicit Resource(const std::string& path)
: data_(_ResLoader::load<_ResClass>(path))
{ };
};
它爲什麼會失敗,但這個一會工夫?:
template<class _ResClass, class _ResLoader=DefaultLoader>
class Resource
: public BaseResource
{
private:
_ResClass data_;
public:
explicit Resource(const std::string& path)
: data_(**DefaultLoader**::load<_ResClass>(path))
{ };
};
不是答案,但像_ResLoader這樣以下劃線和大寫字母開頭的名稱在C++中保留 - 您不能在自己的代碼中創建這樣的名稱。 – 2010-02-11 15:15:04
什麼是錯誤信息? – 2010-02-11 15:16:54
什麼是'DefaultLoader :: load'?它是模板成員函數嗎?內部類型的'DefaultLoader'? – 2010-02-11 15:23:40