我写了一个如下函数:
template <typename T>
std::tuple<std::vector<T>, T, T> f() {
std::vector<T> p(1000);
return std::make_tuple(std::move(p), 10, 10);
}
由于返回类型非常复杂,是否保证在 c++11 下编译器在构造结果时将应用复制省略或移动语义,或者我必须明确地说 std::move(std::make_tuple( std::move(p), 10, 10))?