说我要来存储三种类型的tuple:int,float和std::vector<double>
如果我抛开后续界面的问题,就这样做
tuple<int, float, vector<int>> t;
Run Code Online (Sandbox Code Playgroud)
与此有任何不同
tuple<vector<int>, int, float> t;
Run Code Online (Sandbox Code Playgroud)
由于tuple作为一类可变参数的实现,我期望生成的类有不同的布局,但它有什么关系吗?在将类型放入a tuple(例如,放置最大的第一个等)时,是否还要考虑任何优化注意事项?
R. *_*des 15
该标准不对类型的实际布局施加任何限制.订单影响的唯一事情是结果std::get<N>,std::tuple_element<N, T>等等.
我知道libstdc ++和Visual C++按照给定顺序的相反顺序排列类型; libc ++按给定顺序列出类型.这实际上意味着没有可移植的方式来选择始终产生最佳布局的订单.
但是,其他订单也是可能的.允许实现实现具有总是产生最小大小但仍保留相同语义的布局的元组std::get<N>,依此类推.但是,我不知道有任何标准的库实现.
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |