kan*_*tar 3 c++ tuples eastl c++17 c++20
std::tuple<Ts...>&到 的(隐式)转换std::tuple<Ts&...>?相反,tupleEASTL 的实现提供了这种转换。#include <EASTL/tuple.h>
#include <tuple>
#include <type_traits>
int main()
{
using TupleRef = std::tuple<int, float>&;
using RefTuple = std::tuple<int&, float&>;
using EATupleRef = eastl::tuple<int, float>&;
using EARefTuple = eastl::tuple<int&, float&>;
// static_assert(std::is_convertible_v<TupleRef, RefTuple>); // fails to compile
static_assert(std::is_convertible_v<EATupleRef, EARefTuple>);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
tuple?以下是 godbolt 展示问题的链接:https ://godbolt.org/z/zqfrETKEz
PS:我c++17在 godbolt 中使用了该标志,因为 EASTL 不使用该c++20标志进行编译,但我也对解决方案感兴趣c++20。