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