我知道,但是现在不记得返回用于声明多维数组的大小的函数模板std::???
了。你能提醒我一下这个函数吗?如果我没记错的话,它的工作原理就像下面的例子。
#include <iostream>
int main() {
int a[][2] = {{}, {}, {}};
std::cout << std::size(a) << std::endl; // outputs 3
std::cout << std::???<0>(a) << std::endl; // outputs 3, same as std::size(a)
std::cout << std::???<1>(a) << std::endl; // outputs 2, same as std::size(a[0])
}
我不需要它的实现,我想使用现有的函数。
感谢@sklott的回答:
#include <iostream>
#include <type_traits>
int main() {
int a[][2] = {{}, {}, {}};
std::cout << std::size(a) << std::endl; // outputs 3
std::cout << std::extent<decltype(a), 0>::value << std::endl; // outputs 3, same as std::size(a)
std::cout << std::extent<decltype(a), 1>::value << std::endl; // outputs 2, same as std::size(a[0])
}
1条答案
按热度按时间fjaof16o1#
感谢@sklott的回答: