C++中的initializer_list获取列表长度并用于模板参数的编译期计算小示例
-
用 std::array的initializer_list + 一键计算字节的模板来演示用于模板参数的可能
#include <iostream> #include <array> template <typename T, int SZ> struct Byte { static constexpr int size = sizeof(T) * SZ; }; int main() { constexpr std::array<int, 4> arr {1, 2, 3, 4}; std::cout << Byte<int, arr.size()>::size << std::endl; return 0; }
想法来自该视频评论区的讨论: https://www.bilibili.com/video/BV1vKuQzkEo2
-
S sunrisepeak 从 General Discussion | 综合讨论 移动了该主题