草庐IT

optional_argument

全部标签

c++ - 使用 std::optional 参数调用函数

我有一个函数,其签名是:voidfunc(std::optionalos=std::nullopt);(我使用别名std::experimental::optional直到std::optional正式可用。)但是,我很难清楚地调用它。编译器将拒绝执行两个隐式转换(constchar*➝std::string➝std::optional)以使用原始C字符串文字调用它。我可以这样做:func(std::string("Hello"));编译器会计算出一个std::optional是需要的,并进行转换。但是,这太冗长了。感谢C++11,我也可以这样做:func({"Hello"});虽然这

c++ - 如何使用 boost::optional<T> 在 C++ 中返回 NULL?

我有一个函数在某些情况下需要返回NULL,还有另一个函数需要测试这个函数的返回值。我知道boost::optional但不确定如何使用语法。下面是上述用法的一个简单示例:intfunct1(conststring&key){//useiteratortolookforkeyinamapif(iterator==map.end()){returnNULL//needhelphere!elsereturnit->second;}voidfunct2(stringkey){if(funct1(key)==NULL){//有人可以帮忙语法吗?谢谢。 最佳答案

c++ - 重载 operator== 提示 'must take exactly one argument'

我试图重载operator==,但编译器抛出以下错误:‘boolRationalnumber::operator==(Rationalnumber,Rationalnumber)’musttakeexactlyoneargument我的一小段代码如下:boolRationalnumber::operator==(Rationalnumberl,Rationalnumberr){returnl.numerator()*r.denominator()==l.denominator()*r.numerator();}声明:booloperator==(Rationalnumberl,Rati

C++ "error: passing ' const std::map<int, std::basic_string<char>>' as ' this' argument of ..."

使用以下代码(为简洁起见摘录):颜色.h:classcolor{public:color();enumcolorType{black,blue,green,cyan,red,magenta,brown,lightgray,nocolor};colorTypegetColorType();voidsetColorType(colorTypecColortype);stringgetColorText()const;private:colorTypecColortype=nocolor;mapcolors={{black,"black"},{blue,"blue"},{green,"gre

kotlin - 为什么使用 Arrow 的 Options 而不是 Kotlin 可为空的

我正在查看找到的箭头库here.为什么要使用Option类型而不是Kotlin的内置nullables? 最佳答案 我已经使用Arrow提供的Option数据类型一年多了,一开始,我们对自己做了完全相同的问题。答案如下。OptionvsNullable如果您仅将option数据类型与Kotlin中的nullables进行比较,它们几乎是偶数。相同的语义(有或没有一些值),几乎相同的语法(选项使用map,可空值​​使用safecalloperator)。但是当使用Options时,您可以从箭头生态系统中获益!箭头生态系统(功能生态系统

kotlin - 为什么使用 Arrow 的 Options 而不是 Kotlin 可为空的

我正在查看找到的箭头库here.为什么要使用Option类型而不是Kotlin的内置nullables? 最佳答案 我已经使用Arrow提供的Option数据类型一年多了,一开始,我们对自己做了完全相同的问题。答案如下。OptionvsNullable如果您仅将option数据类型与Kotlin中的nullables进行比较,它们几乎是偶数。相同的语义(有或没有一些值),几乎相同的语法(选项使用map,可空值​​使用safecalloperator)。但是当使用Options时,您可以从箭头生态系统中获益!箭头生态系统(功能生态系统

C++ boost::program_options 读取与 getopt_long 兼容的参数

我正在开发现有程序的更新。我正在用boost::program_options替换Posix的getopt_long()。但是我的工作没有按预期进行:我想阅读如下参数:-server=www.example.com-cconfig.txt我尝试了来自boost::program_options::command_line_style的多种可能性,但我找不到可以提供与getopt_long相同的行为的组合。我发现对于参数:-server=www.example.com我需要旗帜:command_line_style::allow_long_disguise|command_line_st

c++ - 使用 boost::program_options 解析 LPTSTR* 命令行参数

我在使用boost:program_options进行命令行解析时遇到问题。解释它的最快方法是这样显示代码:conststd::vectorargs;if(ac>0&&NULL!=av)//acisaULONG{for(inti=0;i解析器ctor应该采用conststd::vectortypedefbasic_command_line_parsercommand_line_parser;typedefbasic_command_line_parserwcommand_line_parser;/**Createsinstanceof'command_line_parser',pass

c++ - 限制 std::cout 中 boost::options_description 中默认值的精度

当我构建一个boost::options_description实例时options.add_options()("double_val",value(&config.my_double)->default_value(0.2),"it'sadouble");然后想自动输出可用于我的程序的选项,然后把std::cout默认值0.2显示的精度太高,当我有长变量名时,这会有效地扰乱我的输出:--double_val(=0.20000000000000001)it'sadouble不幸的是,之前对std::cout.precision的调用没有帮助:cout.precision(5);std

c++ - 我可以在编译时检测到 "function arguments"是编译时常量吗

我可以在编译时检测“函数参数”1是否是编译时常量吗?例如,函数print(inti)如果调用print(5)可以打印"constant5"但是"non-constant5"如果作为print(i)调用,其中i是一些非常量变量。特别是,在“isconstant”分支中,我应该能够将i视为constexpr,包括将其用于模板参数等。宏技巧、模板元编程和SFINAE技巧都可以。理想情况下它是可移植的,但特定于编译器的解决方案总比没有好。如果存在“假阴性”也没关系-即,如果常量值有时被检测为非常量(例如,当某些优化被禁用时)。如果解决方案可以检测到常量值何时被间接传递给函数(例如,当常量值被传