32得票1回答
在G++ 4.7中,当在内联函数中定义Lambda时未找到Lambda。

我在头文件中定义了以下函数(它所在的库旨在成为仅头文件):typedef bool (*FieldComparer)(const std::string&, const std::string&); inline FieldComparer GetComparer(const...

24得票1回答
gcc -march选项的默认值是什么?

在x86-64特定标志的章节中,gcc信息文件中提到了以下内容:There is no `-march=generic' option because `-march' indicates the instruction set the compiler can use, and there ...

24得票3回答
在VS2012中,将C++中的参数按值传递给函数会产生两个对象。

这里有一段代码,在g++ 4.7和vs2012 (cl17)中产生不同的输出。#include <iostream> using namespace std; class A { public: A() { cout << "1" << endl...

23得票2回答
使用自定义值类型的map::emplace()函数

我在使用map::emplace()时遇到了麻烦。有人可以帮助我找出正确的语法吗?我想做的与这个例子中相同。以下是我的版本:#include <map> using namespace std; class Foo { // private members public...

20得票3回答
如何禁用窄化转换警告?

我使用-Wall,并升级到新的gcc版本后,出现了很多warning: narrowing conversion警告。我想禁用这些警告,但希望保留所有其他警告(最理想的情况是这样)。 在http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.htm...

16得票1回答
GCC 编译器的错误还是未定义行为?这段代码应该能编译通过吗?

下面的代码在clang编译器中可以正常编译,但在GCC(尝试了4.1.2、4.5.4和4.7.2版本)中无法编译: template <typename T> struct A { struct B { }; }; template <typename T>...

14得票2回答
差异类型未找到。

当我在gcc 4.7下尝试使用自定义迭代器与std::distance, 它抱怨找不到difference_type。可惜我不知道为什么会失败。#include <iterator> class nit { public: typedef int difference_t...

14得票1回答
(优化?)关于GCC std::thread的Bug

在测试一些与 std::thread 相关的功能时,我的朋友遇到了GCC的问题。我们想知道这是GCC的错误还是代码有问题(该代码输出(例如)“7 8 9 10 1 2 3”,但我们希望每个整数都被打印出来,范围在[1,10]之间): #include <algorithm> #i...

13得票4回答
用户定义常量和模板参数包的C++11限制下的GCC

我一直在使用gcc 4.7.2中的用户定义常量,并遇到了某些大小限制因素,我不太理解。 我的想法是为固定小数类型定义一个constexpr运算符""。 我想避免从double进行强制转换,而是在编译时使用可变参数模板解析尾数和指数。 小数点解析有点棘手。 当我启用下面代码底部的3个禁用行之...

13得票9回答
使用unique_ptr控制文件描述符

理论上,我应该能够使用自定义指针类型和删除器,以便unique_ptr来管理不是指针的对象。我尝试了下面的代码:#ifndef UNIQUE_FD_H #define UNIQUE_FD_H #include <memory> #include <unistd.h> ...