在VS11中委派构造函数

时间:2013-07-02 17:49:15

标签: 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: '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);
}

似乎有worked before并在this video中描述(从31:30左右开始)。

有人可以告诉我Visual Studio 2012中委托构造函数的实现状态吗?或者我做错了什么?也许我的 cl.exe 命令?或者我需要安装一些CTP编译器或什么?

1 个答案:

答案 0 :(得分:0)

  

或者我是否需要安装一些CTP编译器?

事实上。 VS2012的官方发布/更新不支持委派构造函数。您必须安装2012年11月的CTP。

Here是VC11支持(不支持)的C ++ 11功能的摘要。