【发布时间】:2017-02-03 04:38:59
【问题描述】:
不使用optional<T>{} from BOOST library在c++中返回泛型可选的另一种方法是什么
示例
template<class T>
T search(T arg) {
// this function is just to show the idea of what I am trying to ac
if (found) return arg;
return ?<---
}
我的意思是,如果我知道最常见的调用这个函数的类型,我可以
返回 T(-1); 为 int
return T("not found"); for string
return nullprt;为指针类型
但这违背了泛型的目的。一定有别的方法吧? 感谢您的帮助
【问题讨论】:
-
现有设施怎么可能知道每种类型的良好默认值?
-
你指的是三个返回的例子吗?
-
是的,这听起来像你想要的,但一般。
-
是的,先生,我什至想将这些返回值放在某个字典中,然后检测哪个类型传入了该特定键的返回值
-
然而你不可能对每种类型都这样做。我在您的通用代码之后编写了自己的类型。它怎么会知道如何构造我的类型的对象,更不用说构造一个合理的返回对象了?