小编use*_*067的帖子

gcc4模板错误或更可能是id10t错误

以下代码在Visual Studio下编译得很好,但gcc 4.6.2或4.7都无法处理它.它似乎是有效的,但gcc似乎无法解决const和非const参数之间的区别.这可能是编译器错误吗?

struct CReadType{};
struct CWriteType{};

template<typename ReadWriteType, typename T> 
struct AddPkgrConstByType {}; 
template<typename T> 
struct AddPkgrConstByType<CReadType, T> {
   typedef T type;
};    
template<typename T>
struct AddPkgrConstByType<CReadType, const T> {
    typedef T type;
};
template<typename T>
struct AddPkgrConstByType<CWriteType, T> {
    typedef T const type;
};

template<typename Packager, typename T>
struct AddPkgrConst : public AddPkgrConstByType<typename Packager::CReadWriteType, T> {
};

template<typename Packager, typename T>
inline bool Package( Packager* ppkgr, T* pt ) 
{
    return true;
}

template<typename Packager>
inline bool Package( …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-construction gcc templates gcc4

5
推荐指数
1
解决办法
193
查看次数

标签 统计

c++ ×1

compiler-construction ×1

gcc ×1

gcc4 ×1

templates ×1