- 主题:头文件里声明函数如何使用自动推导返回值类型?
编写一个lib库的工程,
一个函数为:
auto myfun()
{....
return std::tuple(a,b,c,d,e,f);//a,b,c,d,e,f是各种类型的类,类名写起来还很复杂
//比如a的类型可能是vector<vector<complex<double>>>>这种
}
头文件里声明这个函数时能使用自动类型推导出返回值类型吗?
--
FROM 120.244.84.*
std::tuple降低代码可读性,我是不用的。
--
FROM 222.130.138.*
【 在 z16166 的大作中提到: 】
: std::tuple降低代码可读性,我是不用的。
:
俞飞鸿,std::tuple用来存储不同类型的对象时,性能有没损失?
--
FROM 125.70.163.*
std::tuple完全是编译期的,不会有额外的性能开销
但是用下标数字去引用成员,搞不好就错位了,这就是降低代码可读性、可维护性的地方
即便是把下标数字定义成容易记忆的枚举,改变顺序时也要同步修改这些枚举,忘了就完了,那我为啥不用struct
感觉适合局部使用,不适合大跨度使用,比如跨模块等,不然到处要看某个下标到底是啥
【 在 horkoson 的大作中提到: 】
:
: 俞飞鸿,std::tuple用来存储不同类型的对象时,性能有没损失?
--
修改:z16166 FROM 222.130.138.*
FROM 222.130.138.*
反射是运行期的,跟tuple没关系
【 在 ylh0315 的大作中提到: 】
: 解决不了反射问题。
: 试图用tuple代替反射没有成功。
--
FROM 222.130.138.*
静态反射是c++热点需求啊
【 在 z16166 的大作中提到: 】
: 反射是运行期的,跟tuple没关系
:
: 【 在 ylh0315 的大作中提到: 】
: ...................
--
FROM 221.221.160.*
头文件是预处理又不是语言机制,没觉得有啥特别之处啊。
【 在 capriccio 的大作中提到: 】
: 编写一个lib库的工程,
: 一个函数为:
: auto myfun()
: ...................
--
FROM 221.221.160.*
可以吧
只是含义不清晰,毕竟是给人用的,不如声明个类型别名清楚
【 在 capriccio 的大作中提到: 】
: 编写一个lib库的工程,
: 一个函数为:
: auto myfun()
: ...................
--
FROM 93.179.102.*
可以的
【 在 capriccio 的大作中提到: 】
: 编写一个lib库的工程,
: 一个函数为:
: auto myfun()
: ...................
--
FROM 115.193.189.*
一般和Structured binding一起用吧
返回向量方便一些
【 在 z16166 的大作中提到: 】
: std::tuple降低代码可读性,我是不用的。
:
--
FROM 115.193.189.*