使用别名声明的代码示例C ++ 11中的new无法使用VC ++ 11进行编译,在VS2012中更新1并发出包含的错误。它使用g++ -std=c++11 -Wall in.cpp
在Windows 7上的MinGW下编译并执行GCC 4.7.2。
我没有发现任何迹象表明这是不受支持的。此外,IntelliSense不会发现任何错误,并显示cdptr
类型的工具提示,其中显示typedef const double *cdptr
。我的项目设置为使用v110平台工具集并编译为C ++代码。
我如何冤枉微软?
#include <iostream>
int main()
{
using cdptr = const double*;
const double pi = 3.14159;
cdptr cdp = π
std::cout << "cdp: " << (*cdp) << std::endl;
return 0;
}
构建输出:
1>------ Build started: Project: AliasDeclTest, Configuration: Debug Win32 ------
1> AliasDeclTest.cpp
1>f:\aliasdecltest\aliasdecltest.cpp(9): error C2143: syntax error : missing ';' before '='
1>f:\aliasdecltest\aliasdecltest.cpp(9): error C2873: 'cdptr' : symbol cannot be used in a using-declaration
1>f:\aliasdecltest\aliasdecltest.cpp(12): error C2065: 'cdptr' : undeclared identifier
1>f:\aliasdecltest\aliasdecltest.cpp(12): error C2146: syntax error : missing ';' before identifier 'cdp'
1>f:\aliasdecltest\aliasdecltest.cpp(12): error C2065: 'cdp' : undeclared identifier
1>f:\aliasdecltest\aliasdecltest.cpp(14): error C2065: 'cdp' : undeclared identifier
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========