#include <stdio.h>
#include <iostream>
using namespace std;
template <typename T, int N>
int ReturnArraySize(T (&arg1)[N]) {
return N;
}
constexpr int ReturnTheSum(int arg1, int arg2) {
return arg1 + arg2;
}
int main(int argc, char **argv)
{
int arr1[20];
int arr2[ReturnArraySize(arr1)];
int arr3[ReturnTheSum(ReturnArraySize(arr1), ReturnArraySize(arr2))];
return 0;
}
constexprのを使用しながら:arr2
はVLA(variable-length array、GCCの拡張となり、コンパイルエラー私は、コードをコンパイルすると、私は次のエラーを取得する
/root/Documents/C++11_Fundamentals/ConstExprRelatedFunc/main.cpp:19:67: error: no matching function for call to '
ReturnArraySize(int [(<anonymous> + 1)])
'
私は答えを受け入れることを検討@skvermaこのエラーは私の問題は – skverma