#include <iostream> #include <tuple> template <class T> void test(T t) { int a[std::tuple_size<T>::value]; // can be used at compile time std::cout << std::tuple_size<T>::value << '\n'; // or at run time } int main() { test(std::make_tuple(1, 2, 3.14)); }...
#include <iostream> #include <tuple> template <class T> void test(T value) { int a[std::tuple_size_v<T>]; // 能用于编译时 std::cout << std::tuple_size<T>{} << ' ' // 或运行时 << sizeof a << ' ' << sizeof value << '\n'; } int main() { test(std::make_tupl...
以上代码中,我们定义了一个包含5个整数的std::array,然后使用std::tuple_size<std::array<int, 5>>::value来获取它的大小。最后将结果打印输出。 std::tuple_size是一个模板结构体,它提供了一个value成员,用于表示元素的数量。在上述代码中,size就是std::array的大小。 std::tuple_size对于编写泛型...
#include <iostream> #include <tuple> #include <utility> template<class T> void test([[maybe_unused]]T t) { [[maybe_unused]] int a[std::tuple_size<T>::value]; // 可用于编译时 std::cout << std::tuple_size<T>::value << '\n'; // 或运行时 } int main() { test(std::mak...
感谢@Yakk - Adam Nevraumont,作为结论,下面是我修复它的方式:
#include <iostream> #include <array> template<class T> void test(T t) { int a[std::tuple_size<T>::value]; // 能用于编译时 std::cout << std::tuple_size<T>::value << '\n'; } int main() { std::array<float, 3> arr; test(arr); } 输出: 3 参阅 结构化绑定 (C++17) 绑...
#include <iostream> #include <tuple> template <class T> void test(T t) { int a[std::tuple_size<T>::value]; // 可在编译时 std::cout << std::tuple_size<T>::value << '\n'; // 或在运行时使用 } int main() { test(std::make_tuple(1, 2, 3.14)); } 输出: 3参阅...
#include <iostream>#include <tuple>template<classT>voidtest(T value){inta[std::tuple_size_v<T>];// can be used at compile timestd::cout<<std::tuple_size<T>{}<<' '// or at run time<<sizeof a<<' '<<sizeof value<<'\n';}intmain(){test(std::make_tuple(1,2,3.14));} ...
{}; int main() { using tuple1 = std::tuple<int, char, double>; static_assert(3 == std::tuple_size_v<tuple1>); // uses using template (C++17) using array3x4 = std::array<std::array<int, 3>, 4>; static_assert(4 == std::tuple_size<array3x4>{}); // uses operator std...
#include <iostream> #include <tuple> template <class T> void test(T value) { int a[std::tuple_size_v<T>]; // 能用于编译时 std::cout << std::tuple_size<T>{} << ' ' // 或运行时 << sizeof a << ' ' << sizeof value << '\n'; } int main() { test(std::make_tupl...