我是c++新手,来自c#;
要实现我的预期目标,我只需执行以下命令public void MyMethod(int? value) {
if(value is null) {
// Do something
} else {
// Do something else
}
}
如果可能的话,我如何在c++中实现这个结果?
您可以对std::optional
执行此操作。
void MyMethod(const std::optional<int>& option) {
if(option.has_value()) {
// Do something with the int option.value()
} else {
// Do something else with no value.
}
}
std::nullopt
是在不需要值时传递的值。MyMethod(std::nullopt);
或者,如果您希望能够完全省略参数并说MyMethod()
,那么您可以将参数默认为std::nullopt
。
void MyMethod(const std::optional<int>& option = std::nullopt) {
这听起来像是重载的工作:
void f() {
// do something for no argument
}
void f(int i) {
// do something with I
}