【发布时间】:2011-09-16 14:06:48
【问题描述】:
我遇到了这个sn-p
template <typename T, size_t N>
char (&ArraySizeHelper(T (&array)[N]))[N];
#define arraysize(array) (sizeof(ArraySizeHelper(array)))
在这篇文章中http://software.intel.com/en-us/articles/pvs-studio-vs-chromium/
我见过其他模板可以做同样的事情,比如这个
Use templates to get an array's size and end address
我理解这些,但我在这方面遇到了困难。
任何帮助将不胜感激。
【问题讨论】:
-
您在哪些方面特别有困难?这里有许多不同的 C++ 元素在起作用。
-
欺骗。也可以看看这个底部的解释:stackoverflow.com/questions/437150/…(这不是骗子,我现在懒得去搜索了)。
-
链接到骗子或者它没有发生 :) 我也找不到骗子,否则我不会发布。
-
真正的问题是为什么不使用
std::extent而不是这个丑陋的宏?
标签: c++ templates metaprogramming