我正在尝试从流中读取的两个值构造一对。这些值需要以正确的顺序读取(T1,然后是T2),但我认为参数评估的顺序未定义如下:
std::pair<T1, T2> Read(DataStreamRead& stream)
{
return std::pair<T1, T2>(IO::Read<T1>(stream), IO::Read<T2>(stream));
}
(使用中间变量可以正常工作,但还有另一种方法吗?)
答案 0 :(得分:2)
明确订购操作。
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);
}