1

我正在尝试在 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);
}

它似乎以前有效,并在此视频中进行了描述(从 31:30 左右开始)。

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

4

1 回答 1

0

还是我需要安装一些 CTP 编译器之类的?

的确。VS2012 的官方版本/更新不支持委托构造函数。您必须安装 2012 年 11 月的 CTP。

以下是 VC11 支持(和不支持)的 C++11 特性的摘要。

于 2013-07-02T17:52:08.977 回答