我有一個類模板,它使用類內成員初始值設定項將unique_ptr指定給nullptr。如果我使用MyClass(){}
,一切都很好。如果我使用MyClass() = default
,我得到:具有顯式定義的默認構造函數的unique_ptr到nullptr錯誤的類內成員初始值設定項
conversion from 'std::nullptr_t' to non-scalar type 'std::unique_ptr<A>' requested
下面是一個小例子,其失敗的g ++ 4.8.4編譯:
#include <memory>
class A{};
template <typename T>
class Test
{
std::unique_ptr<A> data = nullptr;
public:
//Test() {} // works fine
Test() = default; // compiler error
};
int main()
{
Test<float> test;
}
任何想法?
那麼,我們不會最小化你的未知(對我們)代碼。 – SergeyA
@SergeyA這是一個非常有用的評論。做得好。 – Anthony
您的代碼在gcc上編譯得很好:[在線試用](http://ideone.com/fD6Hyr) – Anedar