小编Bou*_*46i的帖子

为什么按值传递的数组上的 std::size 不起作用?

为什么std::size()不能在按值传递的静态分配数组上工作?

void print_elemTab(int tab[])
{
   // ...
   int size = std::size(tab); //error 
   // ...
}

void test_tab()
{
   const int    TAB_SIZE = 5;
   int          tab[TAB_SIZE] = {};
   // ...
   cout << std::size(tab) << std::endl; //print 5
   print_elemTab(tab);
   // ...
}
Run Code Online (Sandbox Code Playgroud)

我正在打印尺寸,然后在我再次使用tab的子功能print_elemTab()中传递std::size()

没有得到匹配的函数错误,所以我想知道为什么std::size()第一次在test_tab()而不是在print_elemTab()

我必须通过引用传递它吗?那么我如何制作它,但对于任意长度的数组呢?

还是因为我不知道的事情我必须以另一种方式制作它?

c++ arrays pass-by-reference c++17

5
推荐指数
1
解决办法
180
查看次数

标签 统计

arrays ×1

c++ ×1

c++17 ×1

pass-by-reference ×1