私はもう試した:
template <typename T,unsigned S>
unsigned getArraySize(const T (&v)[S]) { return S; }
モッティの答えの後https://stackoverflow.com/a/18078435/512225
しかし、私はこのメッセージを持っています:
エラー C2265: '': サイズがゼロの配列への参照は不正です
コンパイラの何が問題になっていますか?
私はこのページを見まし た :私はこの解決策を試しました:
template <typename T,unsigned S>
unsigned getArraySize(const T v[S]) { return S; }
これはコンパイルされますが、使用しようとすると:
double myX[2] = {7,3};
std::cout << getArraySize(myX) << std::endl;
コンパイル エラーが発生します:
error C2783: 'unsigned int __cdecl getArraySize(const T [])' : could not deduce template argument for 'S'
コンパイラを変更する以外に、配列のサイズを取得するために使用できる回避策はありますか?