C++ 获取别名std::数组的大小?

C++ 获取别名std::数组的大小?,c++,C++,例如,考虑: #include <array> #include <iostream> int main() { using Ram_bank = std::array<char, 0x2000>; std::cout << "Size of ram bank is: " << Ram_bank::size() << '\n'; return 0; } #包括 #包括 int main() { 使

例如,考虑:

#include <array>
#include <iostream>

int main()
{
    using Ram_bank = std::array<char, 0x2000>;
    std::cout << "Size of ram bank is: " << Ram_bank::size() << '\n';
    return 0;
}
#包括
#包括
int main()
{
使用Ram_bank=std::array;

std::cout您可以实例化一个数组,然后获取它的大小(因为
std::array::size
是一个非静态成员函数)。每个半体面的编译器都应该优化它:

std::cout << "Size of ram bank is: " << Ram_bank().size() << '\n';

std::cout您可以实例化一个数组,然后获取它的大小(因为
std::array::size
是一个非静态成员函数)。每个半体面的编译器都应该优化它:

std::cout << "Size of ram bank is: " << Ram_bank().size() << '\n';

std::cout您的代码没有失败,因为
Ram\u bank
是一个别名。失败是因为
size()
是非静态的,您需要一个实例来调用它。Kosta的答案就是一个例子

或者,您可以使用
std::tuple\u size

std::cout << "Size of ram bank is: " << std::tuple_size<Ram_bank>::value << '\n';

std::cout您的代码没有失败,因为
Ram\u bank
是一个别名。失败是因为
size()
是非静态的,您需要一个实例来调用它。Kosta的答案就是一个例子

或者,您可以使用
std::tuple\u size

std::cout << "Size of ram bank is: " << std::tuple_size<Ram_bank>::value << '\n';
std::cout