构造 std::pair 时按顺序计算参数
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);
}
我正在尝试根据从流中读取的两个值构造一对。这些值需要以正确的顺序(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);
}