- 主题:C++的模板用法太多了,板上有人能写出这样的代码吗?
template<class A>
struct std_array_helper {
using type=A;
};
template<class A>
using array_t = typename std_array_helper<A>::type;
template<class T, std::size_t N0>
struct std_array_helper<T[N0]> {
using type=std::array<array_t<T>, N0>;
};
定义了一个支持二维数组的array_t模板类,可以写成array_t<int,10,3> arr这样
打死我也想不出,看懂都费劲
--
FROM 223.72.40.*
这不是基本技能吗
--
FROM 175.188.167.*
大牛, 我对模板的理解还停留在泛型的层次。
【 在 pgw 的大作中提到: 】
: 这不是基本技能吗
--
FROM 223.72.40.*
.........用最简单易懂的方式,写出计算性能最好的代码...........
这用法好在哪里?
--
FROM 221.222.20.*
不知道,我在网上看到的
【 在 cmkylin 的大作中提到: 】
:
: .........用最简单易懂的方式,写出计算性能最好的代码...........
:
: 这用法好在哪里?
: --
:
发自「今日水木 on iPhone 12」
--
FROM 223.72.40.*
确实很烦,一层层返回去。
// 1
template<class A>
struct std_array_helper {
using type=A;
};
// 2
template<class A>
using array_t = typename std_array_helper<A>::type;
// 3
template<class T, std::size_t N0>
struct std_array_helper<T[N0]> {
using type=std::array<array_t<T>, N0>;
};
array_t<int[10][3]>
2 -> std_array_helper<int[10][3]>::type
3 -> std::array<array_t<int[10]>, 3>
2 -> std::array<std_array_helper<int[10]>::type, 3>
3 -> std::array<std::array<array_t<int>, 10>, 3>
2 -> std::array<std::array<std_array_helper<int>::type, 10>, 3>
1 -> std::array<std::array<int, 10>, 3>
--
FROM 125.118.30.*
不需要造轮子,eigen库搞起,几维的都支持,使用界面还算人性化,除非专门做底层库的,大部分不需要自己写模板库
--
FROM 222.129.1.*