考虑一下
template <class T> inline constexpr bool found_to_be_array (T* specimen) { if constexpr (std::is_array_v<T>) { return true; } else { return false; }; }
问题是,这将产生可靠的结果?
澄清:我无法改变这个功能的足迹.我没有答案,所以让我在这里发表我的发现.考虑一下:
int ia[]{ 1,2,3,4,5,6,7,8,9,0 }; int iam[3][3][3][3][3]{}; // returns false auto is_array_1 = found_to_be_array(ia); // returns true auto is_array_2 = found_to_be_array(iam);
我仍在研究这个问题,但对于多维数组,found_to_be_array有效.