草庐IT

gcc_test

全部标签

c++ - `pragma pack(push, 1)` 在 GCC 4.4.7 中崩溃。可能的编译器错误?

我遇到了一个让我难过的错误。我已将其缩小为GCC(特别是RHELLinux,GCCv.4.4.7)中的pragmapack命令的问题,可以在下面显示的小示例案例中重新创建该问题。看起来GCC在这种情况下计算了错误的偏移量,这将表现为循环内的崩溃。删除pragmapack也可以消除错误-但在实际应用程序中,这将导致使用许多额外的千兆字节内存,这是不可取的。在下面的示例中,您需要在启用优化(O3)的情况下进行编译才能体验失败。我还在结构中提供了一个示例项(cMagic),可以将其删除,这将更改结构对齐方式并防止错误触发。我查看了生成的程序集,认为这可能是一个编译器错误。我还缺少其他东西吗?

c++ - 调用 gcc _without_ -pthread 有什么好处?

我们知道添加-pthreadmakesGCCusereentrant/thread-safecode(编译C/C++代码时)。虽然我想如果您允许不可重入,您确实可以在这里和那里节省几个周期-我想知道不总是指定-pthread是否有任何实际优势。有吗? 最佳答案 一个例子:std::shared_ptr的libstdc++实现doesn'tuselockingwhencompiledwithout-pthread,如果您在单线程环境中大量使用共享指针,这可以大大提高性能。 关于c++-调用

c++ - 如何在 Google Test 中为一个夹具运行多个测试用例?

假设我有一个名为ProfileTest的GoogleTestfixture继承自::testing::TestWithParams创建一个解析器:classProfileTest:public::testing::TestWithParam>{public:QStringgetName(){returnQFileInfo(*m_file).fileName();}protected:voidSetUp(){m_profile=newProfile();m_file=newQFile(std::get(GetParam()).c_str());m_file->open(QIODevice

c++ - Clang 和 GCC 在解析可变函数模板重载时的不同行为

考虑这段代码:#includeintfoo_i(intx){returnx+1;}charfoo_c(charx){returnx+1;}usingII=int(*)(int);usingCC=char(*)(char);templatestructfn{Ff;templatedecltype(auto)operator()(Args&&...args)const{returnf(std::forward(args)...);}};structfn_2:privatefn,privatefn{fn_2(IIfp1,CCfp2):fn{fp1},fn{fp2}{}usingfn::ope

c# - 为什么 if( !A && !B ) 不能优化为单个 TEST 指令?

if(!A&&!B)似乎应该编译为moveax,dwordptr[esp+A_offset]testeax,dwordptr[esp+B_offset]jne~~~~~~~~~~编译器实际生成moveax,dwordptr[esp+A_offset]testeax,eaxjne~~~~~~~~~~moveax,dwordptr[esp+B_offset]testeax,eaxjne~~~~~~~~~~看这里转储8B45F8moveax,dwordptr[b]837DFC00cmpdwordptr[a],07504jnemain+32h(0A71072h)85C0testeax,eax7

c++ - gcc 版本 4 和 5 和 6 之间的区别

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestion在为arm交叉编译器下载源代码时,我发现有多个gcc版本正在维护中。最新版本为v4.9.4、v5.4.0和v6.2.0。为什么v4比v5的最新版本和v6的第一个版本更新,这些版本之间的主要区别是什么?

c++ - 从 macos sierra 上的存储库构建 gcc 7 (head)?

我安装了homebrewgcc6,但想在运行sierra的mac上使用gcc7。然而,与过去工作的简单配置make不同,sierra的情况发生了很大变化,我不再想知道如何让gcc自行编译。我知道我从repo协议(protocol)中checkout的东西不应该工作,但至少我应该能够编译它。当前的障碍是不再有系统头文件的/usr/include并且我没有找到指向configure/make以使用XCode.app内部的选项,显然我的自制软件gcc6知道这一点。提供什么选项来配置以设置系统包含目录(可能是库)以在macosSierra上获取当前gcc编译? 最佳

c++ - Google Test with CLion 未运行测试

我正在尝试使用googletest和CLion运行一个简单的测试。我认为我已经正确设置了cmake,并且能够“运行测试”。当我这样做时,它说没有找到测试。有任何想法吗?CMakeLists.txtcmake_minimum_required(VERSION3.7)project(expirement)find_package(ThreadsREQUIRED)set(CMAKE_CXX_STANDARD14)set(SOURCE_FILESmain.cppgetstring.cpptests.cpp)include(${CMAKE_ROOT}/Modules/ExternalProjec

c++ - 为什么 GCC 不允许我创建 `inline static std::stringstream` ?

我会直接去MCVE:#includestructA{inlinestaticstd::stringstreamss;};海湾合作委员会7.2和7.1refusetocompile它有以下错误:error:nomatchingfunctionforcallto'std::__cxx11::basic_stringstream::basic_stringstream()'inlinestaticstd::stringstreamss;^~Infileincludedfromblah:1:0:/opt/compiler-explorer/gcc-7.2.0/include/c++/7.2.0

(11-3-04 )检测以太坊区块链中的非法账户:Train-Test Split(拆分数据集)

11.3.4 Train-TestSplit(拆分数据集)"Train-TestSplit"是机器学习和数据分析中常用的一种数据集拆分方法,用于评估模型的性能和泛化能力。Train-TestSplit的主要目的是,将原始数据集划分为两个互斥的子集:训练集(TrainingSet)和测试集(TestSet)。(1)导入了sklearn(Scikit-Learn)库中的train_test_split函数,并展示了数据集的前几行。train_test_split函数是用于将数据集划分为训练集和测试集的常用工具。它可以将数据集按照一定的比例分割成训练集和测试集,以便进行机器学习模型的训练和评估。具体