草庐IT

assert_options

全部标签

c++ - 为设置比较器获取 "Debug Assertion Failed!"

我知道此链接已回答类似问题HelpmefixthisC++std::setcomparator但不幸的是,我面临着完全相同的问题,我无法理解其背后的原因,因此需要一些帮助来解决它。我正在使用VS2010,我的发布二进制文件运行良好,没有任何问题,但调试二进制报告:我的比较器是这样的:structPathComp{booloperator()(constwchar_t*path1,constwchar_t*path2)const{intc=wcscmp(path1,path2);if(c0){returntrue;}returnfalse;}};我的集合是这样声明的:setpathSet

c++ - boost program_options 是如何工作的?

对我来说奇怪的是,boost的options_description使用多行代码,没有反斜杠、分号或逗号。我做了一些研究,但一无所获。(代码取自officialboost'stutorial):intopt;po::options_descriptiondesc("Allowedoptions");desc.add_options()("help","producehelpmessage")("optimization",po::value(&opt)->default_value(10),"optimizationlevel")("include-path,I",po::value>

c++ - static_assert 和英特尔 C++ 编译器

阅读cppreference.com:Astaticassertdeclarationmayappearatblockscope(asablockdeclaration)andinsideaclassbody(asamemberdeclaration)好的,现在我有以下代码:structfoo_t{staticconstexprstd::size_tmaxAlignment(){//Thisisjustasample;Iremovedrealcodefromthismethod.returnstd::max(alignof(__m128),__alignof(__m256));}sta

c++ - static_assert 无法将 const char* 模板参数识别为 constexpr : g++ bug?

考虑以下定义。charright_string[]="::right_one.";charwrong_string[]="::wrong_one.";templatevoidf(){static_assert(str==::right_string,"Passme::right_string!");}structTest{staticconstexprcharright_string[]="template_struct::right_one";staticconstexprcharwrong_string[]="template_struct::wrong_one";template

c++ - 我可以使用 std::optional 进行错误处理吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion使用C++17我们得到了std::optional这是表达可空类型的有用包装器。我可以用它来处理错误吗?这样做很有吸引力:optionalCompute(){//...computesomethingvalid...returnstd::nullopt;//error!}这会是一个不错的选择吗?返回空指针不一样吗?人们报告的问题是,如果发生错误,您会丢失一条消息。所以返回一些状态码可能会更

c++ - 仅在实例化时使用 `static_assert` 使类模板特化无法编译的安全、符合标准的方法?

假设我们想要制作一个模板类,它只能用数字实例化,否则不能编译。我的尝试:#includetemplatestructOnlyNumbers{public:structC{};static_assert(std::is_same::value,"Tisnotarithmetictype.");//OnlyNumbers*ptr;};templatestructOnlyNumbers>>{};structFoo{};intmain(){OnlyNumbers{};//Compiles//OnlyNumbers{};//Error}Livedemo-所有三个主要编译器似乎都按预期工作。我知道

c++ - 如何将 boost options_description 与十六进制输入一起使用?

我想有两个选项供程序运行,起始地址和结束地址,以便程序选项如下:--start_address0xc0000000--end_address0xffffffffoptions_description是否可以接受这样的十六进制输入?我是否必须将输入视为字符串并将它们转换为十六进制值。我现在有这个:po::options_descriptiondesc("Allowedoptions");desc.add_options()("help,h","displaythishelpmessage")("path,p",po::value(),"Executablefilepath")("star

c++ - 自动配置/自动制造 : How to avoid passing the "check" option to AC_CONFIG_SUBDIRS

我正在使用Autoconf构建我的C++项目。它使用第三方代码,这些代码也是在Autoconf/Automake的帮助下构建的。所以在我的configure.ac中有以下行:AC_CONFIG_SUBDIRS([subdirectoryname])一切正常,但我还使用该功能让测试在执行makecheck时自动进行-这也是由第三方代码完成的。因为这些测试需要一段时间,所以每次我想测试自己的代码时都执行它们很烦人。那么有没有办法避免check选项被传递给子目录的Makefile呢?更新:覆盖check-recursive似乎不是一个选项,因为我的顶级Makefile.am看起来(或多或少)

c++ - 什么是 diff b/w Includes in VC++ Directories options 和 Additional include directories in C++ -> General in Visual Studio

我尝试在工具->选项中的VC++目录->包含目录选项中添加包含目录,但在编译时出现错误-“找不到文件或目录”。一旦我添加到Projectproperties->Configurationproperties->C++->General->Additionalincludedirectories,我就可以成功编译。那么为什么VisualStudio有一个包含目录选项。为什么它用于?(我使用的是VisualStudio2010Beta1) 最佳答案 VisualStudio团队最近在他们的博客中解释了VS2010在包含目录方面与早期版本

c++ - 有什么能阻止 std::optional::value_or() 有条件地 noexcept 吗?

这是value_or()的定义来自C++17标准:templateconstexprTvalue_or(U&&v)const&;Effects:Equivalentto:returnbool(*this)?**this:static_cast(std::forward(v));Remarks:Ifis_copy_constructible_v&&is_convertible_visfalse,theprogramisill-formed.(右值重载类似)value_or的效果被描述为等同于returnbool(*this)?**this:static_cast(std::forward