149得票3回答
Lambda的显式返回类型

我尝试编译这段代码(使用VS2010),但出现以下错误: error C3499:被指定为返回void类型的lambda表达式不能返回值void DataFile::removeComments() { string::const_iterator start, end; boost:...

95得票1回答
Visual Studio 2012 中的 C++11 特性

Visual Studio 2012的预览版(VS2010之后的版本)现已发布。 有人知道它支持哪些新的C++11特性吗?(我目前无法尝试)。

45得票7回答
最快的负数取反方法

今天早上我在思考,将一些正数变成负数,将一些负数变成正数的最快方法是什么,当然,最简单的方法可能是: int a = 10; a = a*(-1); 或者 int a = 10; a = -a; 但是,我想,我可以使用shift和指针命令来做到这一点......是否真的有可能使用s...

29得票2回答
Visual C++ 2012(x86)可能存在编译器错误?

我目前在使用VC++ 11(CTP更新1版)编译x86目标时,遇到了随机浮点错误。请参见下面的简短示例“test.cpp”,并使用以下方式进行编译: cl /GL /O2 /EHsc test.cpp /link /MACHINE:X86 输出应该是10 == 10,但当启用/GL(整个...

26得票5回答
使用VS2012 RC,如果在main()退出后调用std::thread::join()会导致程序挂起

如果使用Clang 3.2或者GCC 4.7在Ubuntu 12.04上编译,下面的示例代码可以成功运行(即不会卡住),但是如果使用VS11 Beta或者VS2012 RC编译,则会卡住。 #include <iostream> #include <string> #...

17得票3回答
解决错误R6016 - 线程数据空间不足

我的静态链接Visual C++ 2012程序偶尔会生成CRTL错误:"R6016-线程数据的空间不足"。 微软提供的最少文档称,当产生新线程时却不能为其分配足够的内存时,就会生成此错误消息。 然而,在我的代码中,只有在一些明确定义的情况下才显式地创建一个新的线程,但是这里没有发生这种情况...

13得票1回答
VS 2012(Visual C++ November 2012 CTP)中的可变参数模板

我安装了Visual C++ Compiler November 2012 CTP并创建了一个C++控制台项目。我在此编写了以下内容: template<typename T> void Test(T value){ } template<typename T, typen...

12得票2回答
C++ lambda表达式无法正确选择重载函数吗?

我有一个函数,它会遍历容器并将每个元素传递给一个谓词函数进行过滤。该函数的一个重载还会将每个元素的索引传递给谓词函数。template<typename TContainer> void DoSomethingIf(TContainer &c, std::function&...

12得票2回答
这里存在循环依赖关系吗?

下面的循环代码中,有没有什么明显的问题导致它无法被 VS2012 的 C++ 编译器自动向量化? 当我使用命令行开关 /Qvec-report:2 时,编译器只给出了 info C5002: loop not vectorized due to reason '1200'。 在 MSDN 中,...

12得票3回答
一个类的成员变量可以和其类型(另一个类)同名吗?

尝试在不同的编译器上编译以下代码会得到两个不同的结果: struct S{}; struct T{S S;}; int main(){} 如您所见,在 T 中,我有一个与之前定义的类 S 同名的对象。 在GCC 4.7.2上,涉及到T内的S S;声明,我得到了与此处相关的错误: ...