|
|
1
4
如果要返回多个值,可以返回包含不同值的类的实例。
如果您不在乎失去语义,可以返回
如果要强制类型(例如
在这两种情况下,您都可以使用
1.
如果您有兼容C++17的编译器,则可以使用
template argument deduction
然后简单地返回
|
|
|
2
3
是的,函数可以在
如果允许使用C++14代码,您甚至不必声明类型:
和
here is proof both of these versions compile
(无
备注:
|
|
|
3
2
可以返回结构或使用std::tuple。 使用struct,您可以执行以下操作:
和std::tuple
|
|
4
0
(真的是为了好玩,为了展示C++的强大功能,而不是其他任何东西。) 一种方法是使用
作为返回类型。这是允许的,因为
显然,在函数中,您需要使用
参考号: Why is shared_ptr<void> legal, while unique_ptr<void> is ill-formed? |
|
|
5
-4
返回std::variant的std::vector,其中std::variant被模板参数化为您选择的类型。如果任何类型实际上都是可能的,我不知道为什么要用结构而不是简单地写入内存空间;没有结构中对象和类型的确定性概念的价值很低。 |