它被定义为这种方式,因为size_t它的定义对于所有数组来说都是足够的。如果您想要较小的数组使用较小的类型,您始终可以根据constexpr值在适当的时候缩小范围。
template <typename Array>
struct small_array_size
{
using type = size_t
};
template <typename T, size_t N, typename = std::enable_if_t<N < 256>>
struct small_array_size<std::array<T, N>>
{
using type = uint8_t;
};
template <typename T, size_t N, typename = std::enable_if_t<N < 65536>>
struct small_array_size<std::array<T, N>>
{
using type = uint16_t;
};
template <typename Array>
using small_array_size_t = typename small_array_size<Array>::type;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |