考虑例如:
#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;
}
Run Code Online (Sandbox Code Playgroud)
显然,这不是有效的代码,Ram_bank不是实际的类型或对象,而是别名。但是,有什么方法可以实现这一目标吗?有没有一种方法来获取别名类型的大小?
您的代码没有失败,因为Ram_bank是别名。它失败了,因为size()它是非静态的,您将需要一个实例来调用它。科斯塔的答案就是一个例子。
另外,您可以使用std::tuple_size:
std::cout << "Size of ram bank is: " << std::tuple_size<Ram_bank>::value << '\n';
Run Code Online (Sandbox Code Playgroud)