c++11相关内容

g++ O1 不等于 O0 与所有相关的优化标志

我知道标题有点混乱.让我用一点背景来澄清我的问题: 就执行时间而言,当我使用 -O1 标志与 -O0 标志进行编译时,我的程序的行为很奇怪.我知道 -O1 标志做了许多优化,例如 fauto-inc-dec -fbranch-count-reg -fcombine-stack-adjustments (根据手册页超过 40).为了弄清楚是哪些优化导致了这种行为,我计划一次删除一个标志,然后编 ..
发布时间:2022-01-23 20:55:44 C/C++开发

gcc 中的 C++11 thread_local - 替代方案

如我所见:http://gcc.gnu.org/projects/cxx0x.html 不幸的是,gcc 还不支持 thread_local 关键字. 有没有其他选择?我不想使用 boost 库. 解决方案 gcc 编译器有一个存储类 __thread 可能足够接近. http://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/Thread-Loca ..
发布时间:2022-01-23 20:54:44 C/C++开发

std::vector::push_back 一个不可复制的对象给出编译器错误

我在 g++ (GCC) 4.7.2 上遇到编译错误,但在尝试 std::vector::push_back 时却没有代码> 不可复制(私有复制构造函数)但可移动的对象.对我来说,我的示例看起来与 SO 和其他地方的许多其他示例相同.错误消息使它看起来像结构不是“直接可构造"的问题 - 我不知道这意味着什么,所以我非常不确定为什么对象需要“直接构造"才能被推回. #include ..
发布时间:2022-01-23 20:54:16 C/C++开发

emplace_back() 未按预期运行

我编写了一个简单的程序来尝试在标准库容器中就地创建对象.这是我写的: #include #include AB类{上市:显式 AB(int n);AB(const AB& other) = 删除;AB(AB&&其他);AB&运算符=(常量 AB& 其他)= 删除;AB&运算符=(AB&&其他)=默认;私人的:诠释我;};AB::AB(int n): i(n){ ..
发布时间:2022-01-23 20:53:37 C/C++开发

MacPorts gcc4.5 中的 std::thread

我正在尝试编译一些我在 Linux 中编写的软件,这些软件在我的 Mac 上使用了一些新奇的 C++0x 功能.我使用 MacPorts 安装 gcc45 包,它给了我/opt/local/bin/g++-mp-4.5,但是这个编译器不想编译 中的任何东西.例如我尝试编译: //test.cpp#include 主函数(){标准::线程 x;返回0;} 然后得到: ..
发布时间:2022-01-23 20:52:46 其他开发

在 C++0x lambda 中通过复制捕获引用变量

根据this question的回答和评论,当引用变量被值捕获时,lambda对象应该制作被引用对象的副本,而不是引用本身.但是,GCC 似乎没有这样做. 使用以下测试: #include #include 使用 std::cout;使用 std::endl;int main(int argc, char** argv){诠释 i = 10;诠释&i ..
发布时间:2022-01-23 20:49:03 C/C++开发

更改 g++ 中的默认 C++ 标准

为了以 C++11 标准编译程序,我们需要做: g++ -std=c++11 myProgram.cpp -o myProgramExec 但是有没有可能我可以将 g++ 的默认标准设置为 C++11,这样我就不必一次又一次地提及这个选项虽然我也可以在我的 .bashrc 中为此添加一个别名: 别名 g++='g++ -std=c++11'; 但我想知道是否有比这更好的方法.是否有任何可 ..
发布时间:2022-01-23 20:43:16 服务器开发

我可以在 XCode 4 或 OSX Lion 中使用 C++11 的最新功能吗?

可能重复: 我可以在 Xcode 中使用 C++11 吗? 似乎 xcode 4 包含旧版本的 clang 和 gcc.我可以升级 gcc 或 clang 并将它们与 xcode 4 一起使用吗?我想使用 gcc >= 4.6 或最新的 clang. 我的主要目标是在 mac osx lion 上编程 C++ 时,能够尽可能多地使用 C++11 中的新功能,因此如果需要,放弃 xco ..
发布时间:2022-01-23 20:41:22 C/C++开发

用 g++ 编译的奇怪代码

以下代码使用g++ 4.8.1编译成功: int main(){整数(*)();} 它看起来像一个简单的函数指针声明: int(*f)(); 它不能用 clang 3.4 和 vc++ 2013 编译. 它是编译器错误还是标准的黑暗地方之一? 用 g++ 4.8.1 编译好的类似奇怪代码片段列表(更新): int(*)(); int(*); int(*){}; ..
发布时间:2022-01-23 20:35:31 C/C++开发

std::array 的内联初始化有什么问题?

考虑以下声明: #include 结构 X{//std::arrayarr={假,假,假};布尔 brr[3]={假,假,假};}; 按原样,它可以通过 g++ 5.2 正常编译.但是如果我取消注释 std::array,我会得到一个错误: test.cpp:5:46: 错误:数组必须用大括号括起来的初始化程序初始化std::arrayarr={假,假,假};^ ..
发布时间:2022-01-23 20:34:48 C/C++开发