C++ 在VS11中委派构造函数
我试图在Visual Studio 2012 Update 3中使用委托构造函数,但出现错误:C++ 在VS11中委派构造函数,c++,visual-studio-2012,C++,Visual Studio 2012,我试图在Visual Studio 2012 Update 3中使用委托构造函数,但出现错误: $> cl.exe /EHsc /W4 /MTd .\bla.cpp Microsoft (R) C/C++ Optimizing Compiler Version 17.00.60610.1 for x86 Copyright (C) Microsoft Corporation. All rights reserved. bla.cpp .\bla.cpp(6) : error C2614
$> cl.exe /EHsc /W4 /MTd .\bla.cpp
Microsoft (R) C/C++ Optimizing Compiler Version 17.00.60610.1 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
bla.cpp
.\bla.cpp(6) : error C2614: 'Bla' : illegal member initialization: 'Bla' is not
a base or member
示例源文件:
#include <iostream>
class Bla {
public:
Bla() : Bla(10) { std::cout << "bla()" << std::endl; }
Bla(int _n) { std::cout << "bla(int): " << _n << std::endl; }
};
int main()
{
Bla b0;
Bla b1(10);
}
#包括
Bla类{
公众:
Bla():Bla(10){std::cout
或者我需要安装一些CTP编译器还是什么
的确如此。VS2012的官方版本/更新不支持委托构造函数。您必须安装2012年11月的CTP
是支持(和不支持)C++11功能的摘要由VC11发布。或其他内容。在您的链接中非常明确地提到了这一点,即支持该版本的编译器版本是CTP版本。VS2013预览版也刚刚推出,可能在秋季左右发布。您需要安装2012年11月CTP或更高版本。或者下载V2013预览版。您还可以下载Visual Studio 2013预览(这是一个比CTP更好的C++11功能实现)谢谢你的回答。我认为CTP编译器的功能会包含在VS更新中。@JohnBandela:不知道有多好。似乎CTP中没有移动语义的丑陋bug(至少是AFAIK)。例如,你看。@guini:不客气。不,它们不包括在内——很可能是因为它们不够稳定和/或可能会带来突破性的变化。