构造std ::配对时,评估参数

Evaluating arguments in order when constructing std::pair

本文关键字:评估 参数 std 构造      更新时间:2023-10-16

我正在尝试构造一对,这是从流来的两个值中读取的。这些值需要按正确的顺序读取(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);
}