构造std ::配对时,评估参数
Evaluating arguments in order when constructing std::pair
我正在尝试构造一对,这是从流来的两个值中读取的。这些值需要按正确的顺序读取(T1,然后是T2),但我相信参数评估的顺序在以下内容中未定义:
std::pair<T1, T2> Read(DataStreamRead& stream)
{
return std::pair<T1, T2>(IO::Read<T1>(stream), IO::Read<T2>(stream));
}
(使用中间变量可以正常工作,但是还有另一种方法吗?)
明确订购操作。
std::pair<T1, T2> Read(DataStreamRead& stream)
{
T1 t1 = IO::Read<T1>(stream);
T2 t2 = IO::Read<T2>(stream);
return std::pair<T1, T2>(t1, t2);
}
相关文章:
- 懒惰的参数评估try_emplace?
- 如何使用 std::forward 精确地评估参数包的扩展?
- 评估参数包
- 在处理之前评估宏参数
- 函数参数计算顺序与 Lambda 捕获评估顺序
- 为什么不能订购函数参数评估
- 评估虚拟堆栈中的可变参数
- C2064:术语未评估为1个参数qtConcurrent :: map的函数
- 在评估不同参数的constexpr函数时,运行时差异
- 在模板参数中评估 constexpr 时 SFINAE 失败
- 完美转发常量参数以进行持续评估
- 未评估上下文中的默认模板参数和 lambda:错误还是功能?
- 构造std ::配对时,评估参数
- std :: initializer_list:错误c2064:项未评估为0参数的函数
- 单步执行函数,但不进入VS2017的参数评估
- 模板参数评估
- 有没有办法只评估对元组的参数
- 评估采用函数参数的元功能,干燥,而无需使用宏
- 是否有等效的 #if 可以评估模板参数
- 将对象作为参数,以评估方法