所以,我正在写一个命令管理器。你在哪里传递参数。
CMD(test)
{
std::vector<std::string> arg;
split_(argument, arg); // Split argument don't matter..
if( arg.size() >= 2 && arg[2].empty() )
{
Error("At least 2 arguments")
return;
}
}
我无法进行检查,如果我在命令中写入了1个参数。它没有达到if。我如何检查是否向该命令行提供了2个参数?
第二个问题,我想在参数列表中转换std :: chrono :: duration。。
using time_duration = std::chrono::duration<double>;
class FOO
{
public:
void Func( time_duration time);
};
我想使用cmd_line为Func传递参数。所以我确实喜欢这样
CMD(test)
{
std::vector<std::string> arg;
split_(argument, arg); // Split argument don't matter..
if( arg.size() >= 2 && arg[2].empty() )
{
Error("At least 2 arguments")
return;
}
constexpr std::chrono::duration<double> xx = std::stod(arg[1]);
Func(xx);
}
当我尝试编译时,我收到转换错误。
conversion from 'double' to non-scalar type 'const std::chrono::duration<double>' requested
如何使用上述示例将std :: chrono :: durationargument传递给Func?
所以,我正在写一个命令管理器。您在哪里传递参数。 CMD(test){std :: vector <:string>arg; split_(参数,arg); //分割参数无关紧要.. if(arg.size()> = 2 ...
对于第一部分,您只需要翻转支票,即
if( arg.size() < 2 )
{
Error("At least 2 arguments")
return;
}