如何在C ++中创建一个可直接构造的类?

时间:2014-08-22 19:00:25

标签: c++ constructor unordered-map



更新: Igor在评论中回答了这个问题。结果我错过了我的拷贝构造函数中的const



我正在编写一个可以存储在unordered_map中的类,并且所有内容在语法上都是正确的。然而,当我编译时,编译器会返回一些奇怪的错误,这些错误似乎与__is_direct_constructible_new有关。该错误还建议尝试编译为-ftemplate-backtrace-limit=0,但这会导致另一个错误,所以我宁愿不弄乱编译器标志,而是找到问题的根源。

话虽如此,我的问题是:我应该添加什么才能使我的课程“直接可构建”?

我在下面列出了该类的一般化样本。

我尝试在this post中遵循一些相关的建议,但那些没有帮助。

我还确保问题不是由密钥或密钥的哈希引起的。

我以前从未碰到这个,所以我不确定如何让这个课程直接可构建。

这是我所指的类的通用版本:

class Data
{
    public:
        // variables
        // pointers
        // member functions

        Data();                     // Sets variables to 0 and pointers to NULL
        Data(ifstream& dataFile);   // Initializes from a file
        Data(Data& original);       // Copy constructor
        ~Data();
};

如果它有所不同,我尝试从here编译MinGW 32位和64位版本的MinGW 4.8.3。

0 个答案:

没有答案