草庐IT

c++ - libstdc++ 并行模式 : Who's using it? 安全吗?有没有类似的项目?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭8年前。ImprovethisquestionC++库的GNU实现支持并行模式,解释here.有使用过的经验吗?好的?坏的?尤其是在正确性方面,还有性能方面。是否有一些“或多或少严肃”的项目在使用它?您是否将它与全局开启并行开关-D_GLIBCXX_PARALLEL一起使用,或者您是否小心地将其与手动开启特定并行化函数一起使用,例如:__gnu_parallel::sort(v.begin(),v.end());?有没有类似的开源项目

c++ - 如何在 GCC 中链接 libc 和 libstdc++ 的调试版本?

我知道thisquestion,但它似乎对我不起作用。对于设置,使用一个简单的C++程序hw.cpp,由:intmain(){}使用g++-ohwhw.cpp-O0-g编译时在Linux上,运行ldd./hw给出:linux-gate.so.1=>(0x003e5000)libstdc++.so.6=>/usr/local/lib/libstdc++.so.6(0x007c5000)libm.so.6=>/lib/tls/i686/cmov/libm.so.6(0x006a4000)libgcc_s.so.1=>/usr/local/lib/libgcc_s.so.1(0x00a400

c++ - 如何在 GCC 中链接 libc 和 libstdc++ 的调试版本?

我知道thisquestion,但它似乎对我不起作用。对于设置,使用一个简单的C++程序hw.cpp,由:intmain(){}使用g++-ohwhw.cpp-O0-g编译时在Linux上,运行ldd./hw给出:linux-gate.so.1=>(0x003e5000)libstdc++.so.6=>/usr/local/lib/libstdc++.so.6(0x007c5000)libm.so.6=>/lib/tls/i686/cmov/libm.so.6(0x006a4000)libgcc_s.so.1=>/usr/local/lib/libgcc_s.so.1(0x00a400

c++ - 处理 libc++ 和较旧的 libstdc++ 之间的 ABI 差异的好方法是什么?

在Mac上处理libc++和stdlibc++之间的ABI不一致的好方法是什么(如果有)?问题:许多c++11功能需要C++标准库的新libc++实现。但是libc++与旧的libstdc++不兼容ABI,而目前大多数软件通常链接到后者。例如,系统编译器仍然使用stdlibc++,这意味着我所有使用macports安装的库对于像字符串这样的标准类都有不同的ABI,并且无法与大量使用c++11的项目链接。我目前的解决方案:保留两个版本的库,这通常会导致问题(boost、opencv等)并链接到适当的版本。我想有人可能会建议,如果我真的想使用libc++,我应该使用stdlibc++清除我

c++ - 处理 libc++ 和较旧的 libstdc++ 之间的 ABI 差异的好方法是什么?

在Mac上处理libc++和stdlibc++之间的ABI不一致的好方法是什么(如果有)?问题:许多c++11功能需要C++标准库的新libc++实现。但是libc++与旧的libstdc++不兼容ABI,而目前大多数软件通常链接到后者。例如,系统编译器仍然使用stdlibc++,这意味着我所有使用macports安装的库对于像字符串这样的标准类都有不同的ABI,并且无法与大量使用c++11的项目链接。我目前的解决方案:保留两个版本的库,这通常会导致问题(boost、opencv等)并链接到适当的版本。我想有人可能会建议,如果我真的想使用libc++,我应该使用stdlibc++清除我

c++ - CMake:将 libgcc 和 libstdc++ 静态链接到共享库中

问题:我在安装Ubuntu16.04时使用CMake和GCC4.9将glibcc/glibc++链接到共享库时遇到困难。附加条件:加载共享库会给RedHat生产环境(我将它复制到的地方)带来问题,我相信因为它使用了不同的libstc++版本(错误:未找到GLIBCXX_3_4_20)。我没有sudo权限,无法升级机器。正如我从this得出的那样博客,这个post,我尝试使用以下方法链接静态链接与libgcc和libgc++:set(CMAKE_EXE_LINKER_FLAGS"-static-libgcc-static-libstdc++-static")再次使用set(CMAKE_S

c++ - CMake:将 libgcc 和 libstdc++ 静态链接到共享库中

问题:我在安装Ubuntu16.04时使用CMake和GCC4.9将glibcc/glibc++链接到共享库时遇到困难。附加条件:加载共享库会给RedHat生产环境(我将它复制到的地方)带来问题,我相信因为它使用了不同的libstc++版本(错误:未找到GLIBCXX_3_4_20)。我没有sudo权限,无法升级机器。正如我从this得出的那样博客,这个post,我尝试使用以下方法链接静态链接与libgcc和libgc++:set(CMAKE_EXE_LINKER_FLAGS"-static-libgcc-static-libstdc++-static")再次使用set(CMAKE_S

c++ - 我的机器上的 std::promise 是否损坏(使用 g++-mp)?

这段代码是否有效,还是我的编译器坏了?#include#includeintmain(){std::coutmypromise;std::futuremyfuture=mypromise.get_future();mypromise.set_value(true);boolresult=myfuture.get();std::cout这是输出:$g++-mp-4.8-std=c++11test.cpp$./a.outdoingthetestSegmentationfault:11$我正在使用g++-mp-4.8,它是来自macports的gcc4.8。我要疯了吗?

c++ - 我的机器上的 std::promise 是否损坏(使用 g++-mp)?

这段代码是否有效,还是我的编译器坏了?#include#includeintmain(){std::coutmypromise;std::futuremyfuture=mypromise.get_future();mypromise.set_value(true);boolresult=myfuture.get();std::cout这是输出:$g++-mp-4.8-std=c++11test.cpp$./a.outdoingthetestSegmentationfault:11$我正在使用g++-mp-4.8,它是来自macports的gcc4.8。我要疯了吗?

c++ - gcc4.9.2的std::vector的libstdc++实现继承自_Vector_base(非虚拟析构函数)。为什么这样可以?

Thisquestionalreadyhasanswershere:Thoushaltnotinheritfromstd::vector(13个回答)6年前关闭。所以一段时间以来,我一直在使用从std::vector派生的容器。也许由于几个原因,这是一个糟糕的设计决策,并且在此处广泛讨论了是否应该这样做的问题:Thoushaltnotinheritfromstd::vectorSubclass/inheritstandardcontainers?IsthereanyrealrisktoderivingfromtheC++STLcontainers?Isitokaytoinheritim