小编use*_*235的帖子

C++模板类对于不同的编译器表现不同

我正在使用C++中的模板.使用MSVC编译器和使用Mingw gcc编译器时,使用模板和友元类是否有任何区别.我的代码在使用MSVC编译时成功编译并提供所需的输出,但在使用gcc编译时会出错.以下是我的代码,

///////////Record.h/////////////////////
#include "Base.h"

class Derived1;
class Derived2;
template <class TYPE_LIST> class List;

class FRecord
{
public:
    FRecord();
    virtual ~FRecord();

    friend class Base;
#if _MSC_VER <= 1200
    friend class List<Derived1>;
    friend class List<Derived2>;
#else
    template <class TYPE_LIST> friend class List;
#endif
};

///////////////////////////////////////////////////////////////

///////////////////Base.h/////////////////////////////////

class Base
{
public:
    Base(const HEADER *hc, const FRecord *fr);
    virtual ~Base();    
    __inline bool IsNonValid() const;

protected:
    quint32 Size;
};

/////////////////////////////////////
// Data
/////////////////////////////////////
template <class TYPE_LIST>
class Data : public TYPE_LIST
{
public:
    Data(const …
Run Code Online (Sandbox Code Playgroud)

c++ qt templates visual-studio-2010 mingw32

7
推荐指数
2
解决办法
235
查看次数

标签 统计

c++ ×1

mingw32 ×1

qt ×1

templates ×1

visual-studio-2010 ×1