草庐IT

compiler-options

全部标签

c++ - 具有模板特化的 constexpr 数组成员 : inconsistent behavior cross compilers

考虑以下代码:#includetemplatestructfoo{};templatestructfoo{staticconstexprcharvalue[]="abcde";};templatestructbar{staticconstexprcharvalue[]="abcde";};templatestructbaz{staticconstexprintvalue=12345;};intmain(){charc=foo::value[2];chard=bar::value[2];inte=baz::value;std::cout编译时:clang++-std=c++14./tes

c++ - 如何构建 Boost::program_options

我想使用boost::program_options。安装boost后,我​​认为我必须单独构建program_options(http://www.boost.org/doc/libs/1_43_0/more/getting_started/windows.html)。但我不知道该怎么做。我正在尝试编译C:\ProgramFiles\boost\boost_1_42\libs\program_options\example\first.cpp(http://www.boost.org/doc/libs/1_42_0/doc/html/program_options/tutorial.

c++ - 与 friend 一起上课而不是前向声明,: which compiler is correct

这个问题在这里已经有了答案:Friendmethod"notdeclaredinthisscope"inC++(1个回答)Error:'FriendMemberFunctionName'wasnotdeclaredinthisscope(3个答案)关闭3年前。我有这个简单的C++程序:#includestructobj{friendintf(int);voidm(intx){std::cout如果我使用GNUC++编译器g++进行编译,我会得到错误prog.cpp:7:55:error:'f'wasnotdeclaredinthisscope但是,如果我使用cl(和/W4)编译它,它会

c++ - 使用 boost.program_options 处理 '-'

在你说OVERKILL之前,我不在乎。如何让Boost.program_options处理所需的cat选项-?我有//visiblepo::options_descriptionoptions("Options");options.add_options()("-u",po::value(),"Writebytesfromtheinputfiletothestandardoutputwithoutdelayaseachisread.");po::positional_options_descriptionfile_options;file_options.add("file",-1);

c++ - SFINAE : Detecting if a function is called by a compile time known value

我喜欢在我的一个ctors以编译时已知值被调用时做一些检查。有办法检测吗?所以当有人调用它时:Aa(10);因为10是编译时已知常量,所以我喜欢调用一个特殊的构造函数,如下所示:template>A(intValue){}知道如何解决这个问题吗?谢谢! 最佳答案 积分常量可以解决您的问题:structA{template*=nullptr>A(std::integral_constant){}};然后,你可以像这样使用它:Aa{std:integral_constant{}};为了便于使用,您还可以使用类似于boost::hana的

c++ - 如何在 Boost::Program_Options 中支持命令行语法 "-DEVICE:iphone"?

Boost::Program_Options的默认语法是“--DEVICEiphone”。如何支持语法“-DEVICE:iphone”或“-DEVICE=iphone”? 最佳答案 Boost.Program_Options有相当多的optionstyles.您似乎想要的特定组合是:command_line_style::long_allow_adjacent|command_line_style::short_allow_adjacent|command_line_style::allow_long_disguise应该将这些选项

c++ - C1001 : An internal error has occurred in the compiler

这应该是不言自明的。我正在尝试实现分布排序,但MSVC编译器崩溃了。这似乎是用我的SFINAE检测成员函数的特定情况,如果我不将indexert传递给函数,或者替换has_get_index,这似乎不会发生。如果我删除剩余的索引器重载中的任何一个,它也不会发生。如果sortable有一个getIndex()const成员,问题仍然存在。1>test.cpp(34):fatalerrorC1001:Aninternalerrorhasoccurredinthecompiler.1>(compilerfile'msc1.cpp',line1420)1>Toworkaroundthispro

c++ - experimental::optional nullopt_t 构造函数

Here描述了nullopt_t和nullopt用于为c++提议的optional对象:structnullopt_t{seebelow};constexprnullopt_tnullopt(unspecified);[...]Typenullopt_tshallnothaveadefaultconstructor.Itshallbealiteraltype.Constantnulloptshallbeinitializedwithanargumentofliteraltype.原因在Theop={}syntax中有解释。文档章节:为了使op={}明确,必须采用一些技巧,其中之一是nu

c++ - Boost Program_Options 抛出 "character conversion failed"

我在Ubuntu14.04上,使用CMake和CLion。我正在尝试使用程序选项,以下代码取自其文档中的示例:#include#includeintmain(intac,char*av[]){namespacepo=boost::program_options;usingnamespacestd;po::options_descriptiondesc("Allowedoptions");desc.add_options()("help","producehelpmessage")("compression",po::value(),"setcompressionlevel");po::

c++ - CMake + 库达 : compile cpp files in Cuda-mode (--x=cu)

假设我有一个文件,我们称它为foo.cpp,我的目标是在cuda模式下用nvcc编译这个文件。在命令行中,这可以通过调用轻松完成:nvcc--x=cufoo.cpp我正在苦苦挣扎的是让CMake做同样的事情。事实证明,CMake命令cuda_add_executable(foofoo.cpp)将过滤*.cpp文件并使用c++编译器(而不是nvcc)。请注意,将所有文件重命名为*.cu不是一种选择,因为代码库还必须支持非cuda构建。 最佳答案 在FindCUDAsourcecode我找到了一个选项来为特定的非.cu文件激活CUDA编