0

这有点难以解释,但我会尽力而为。假设我们有一个接收选项的函数。该选项将是第一次,一个字符串。像这样的东西:

命令选项="废话废话"

在这里,我们的选择是blah blah blah.

现在,我想为开发人员提供一种将字符串“转换”(而不是强制转换)为另一种类型的方法。我会为基本类型实现我自己的“翻译器”,例如boolor int,例如:

命令递归=“真”

或者

命令行=7

让开发人员覆盖它们或指定新的,也许使用仿函数(因为我使用的是 C++11,所以使用 wonderful 没有问题functional)。

问题是我还没有找到一个可以接受的关于如何实现它的想法。根据我对 C++ 的了解,我已经尝试了一些东西——这绝对不是“完整的”,而是“可以接受的”——但其中很多都没有奏效或让我陷入困境。我的意思是我可以使用一些肮脏的技巧,但我想要最优雅的解决方案(当然是类型安全的)。

我希望我不会和你成为一个luser。感谢您的宝贵时间,无论如何抱歉。

最好的问候, Kalrish

4

1 回答 1

0

要将字符串转换为整数,您可以从使用atoi.

std::string strValue = "1245";
int intValue = atoi(strValue.c_str());

或者在 C++11 中你可以使用

int intValue = std::atoi(strValue.c_str());

要转换为布尔值,您可以从比较字符串开始

bool boolValue = strValue == "true";
于 2013-04-20T21:58:05.397 回答