草庐IT

extra_compile_args

全部标签

C++ 模板 : Inlined code and Compiler Optimzations

是否可以安全地假设以下代码在被编译器优化和内联时会删除评估三元运算所需的分支?或者对于大多数主流编译器来说,将下面的方法分成两个单独的方法以避免分支会更明智吗?/*!\briefthismethodreturnsthecosofanangle.Usercanspecifyifitis*indegreesorradians.*/templateTcos(constT&angle){return(AM==radians)?std::cos(angle):std::cos(degrees_to_radians(angle));} 最佳答案

c++ - Qt debian/ubuntu : Can't compile, 错误:找不到-lGL

我在Debian上用Qt构建应用程序时遇到问题。当我尝试编译我得到的任何东西时:/usr/bin/ld:找不到-lGLcollect2:错误:ld返回1退出状态make:***[test]错误114:38:52:处理“/usr/bin/make”zakończyłsiękodemwyjściowym2。最后一行表示:Procces(...)退出代码:2知道哪里出了问题吗? 最佳答案 由于这是一个链接器错误,您可能遇到以下两个问题之一:您没有安装libGLlibGL已安装但不在您的系统路径中。如果没有安装libGL,您可以安装它:su

C++ : Will compiler optimize &Variable; away?

在C++中,这样的语句是有效的:&Variable;IMO它没有任何意义,所以我的问题是,如果你这样做,它会以任何方式影响编译结果,还是编译器会优化它?谢谢! 最佳答案 考虑这个片段:#includeclassA{public:A*operator&(){std::cout在这种情况下,"&a;"将生成代码。 关于C++:Willcompileroptimize&Variable;away?,我们在StackOverflow上找到一个类似的问题: https:

c++ - 将 args 的参数包解包到可变参数模板中定义的每个类的构造函数中

我正在尝试创建一个继承自多个类(由可变参数模板定义)的类,并且对于每个类,将相同的args参数包传递给每个类的构造函数。但是,似乎我无法同时解压缩类的可变参数模板和args的参数包。我有一个类:templateclassGenericPolicyAdapter:public__Policies...{使用构造函数:templateGenericPolicyAdapter(__Args...args):__Policies(args...){和测试:GenericPolicyAdaptergeneric_policy_adapter(arg1,arg2,arg3);gcc失败:error

c++ - CMAKE_CXX_COMPILER_VERSION 指向旧的 GCC 版本

我已经使用以下方法升级了我的GCC:$sudoadd-apt-repositoryppa:ubuntu-toolchain-r/test$sudoapt-getupdate$sudoapt-getinstallgcc-8g++-8$sudoupdate-alternatives--install/usr/bin/gccgcc/usr/bin/gcc-870--slave/usr/bin/g++g++/usr/bin/g++-8运行这些命令中的任何一个:$gcc--version$g++--version$c++--version$/usr/bin/gcc--version$/usr/b

c++ - C/C++ va_arg - 有没有办法跳过一个参数?

我想为sprintf()添加功能。具体来说,我希望能够将我自己的POD数据类型传递给它,但我不确定如何执行此操作。据说,如果您创建了va_list,您可以将它传递给vsprintf()并让它为您完成艰苦的工作-但我仍然需要访问va_list,并在将va_list传递给vsprintf().例如,假设以下代码:structmypod{intsomedata;};//justforexample,youknow//somewhereelseinthecode...mypodmp;mp.somedata=5325;my_sprintf(myChrPtr,"%z",mp);使用新的%z代码对应

c++ - 上采样 : insert extra values between each consecutive elements of a vector

假设我们有一个由20个float组成的vectorV。是否可以在这些float的每一对之间插入值,使vectorV成为恰好包含50个数字的vector。插入的值应该是介于上限值和下限值之间的随机数我决定在两者之间插入两个值的中点。我尝试了以下方法:vectorupsample(vector&in){vectortemp;for(inti=1;i使用此函数,输入vector元素增加2(n)-1(20个元素变为39)。输入vector的不同大小可能小于50。我认为可以通过在两个元素之间随机插入一个以上的值来获得大小为50的vector(例如,在V[0]和V[1]之间插入3个值,在V[3]和

c++ - std::scoped_allocator_adaptor 和一个使用 std::allocator_arg_t 构造函数的类

我在这里找到了一些词http://en.cppreference.com/w/cpp/memory/scoped_allocator_adaptor/constructifstd::uses_allocator::value==true(thetypeTusesallocators,e.g.itisacontainer)andifstd::is_constructible::value==true,thencallsstd::allocator_traits::construct(OUTERMOST(*this),p,std::allocator_arg,inner_allocator

c++ - Windows 10 上带有 mingw 的 CMake : Detecting CXX compiler ABI info - failed

我想使用cmake在Windows10上创建MinGWMakefile。我已经安装了mingw,并且可以毫无问题地使用mingw32-make和g++命令。测试项目是一个super简单的CMakeLists.txt文件:cmake_minimum_required(VERSION3.10)project(hello-world)add_executable(hello-worldmain.cpp)和一个简单的main.cpp文件:#includeintmain(){std::cout这些是我用来创建makefile的命令:>>mkdirbuild>>cdbuild>>cmake-G"M

c++ - 不可移动对象数组的初始化 : why does such code fail to compile on GCC?

这是代码示例,其中Test是一个不可复制的和不可移动的类,带有一些virtual成员和用户定义的构造函数,以及B是一个包含Test的原始(C风格)数组的类对象:classTest{public:Test()=delete;Test(constTest&)=delete;Test(Test&&)=delete;Test&operator=(constTest&)=delete;Test&operator=(Test&&)=delete;Test(inta,intb):a_(a),b_(b){}virtual~Test(){}inta_;intb_;};//----------------