Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ VC++;不';t在t[N]表达式上追加维数_C++_Arrays_Templates_Visual C++ - Fatal编程技术网

C++ VC++;不';t在t[N]表达式上追加维数

C++ VC++;不';t在t[N]表达式上追加维数,c++,arrays,templates,visual-c++,C++,Arrays,Templates,Visual C++,我已经编写了一个小实用程序来生成具有指定维度的T类型数组。我知道这听起来很可笑,但现在让我们忽略可用性和目的: #include <cstddef> template <typename T, std::size_t first, std::size_t ... rest> struct generate_dimensions { using type = typename generate_dimensions<T, rest...>::type[

我已经编写了一个小实用程序来生成具有指定维度的T类型数组。我知道这听起来很可笑,但现在让我们忽略可用性和目的:

#include <cstddef>

template <typename T, std::size_t first, std::size_t ... rest>
struct generate_dimensions
{
    using type = typename generate_dimensions<T, rest...>::type[first];
};

template <typename T, std::size_t first>
struct generate_dimensions<T, first>
{
    using type = T[first];
};
#包括
模板
结构生成维度
{
使用type=typename生成_维度::type[first];
};
模板
结构生成维度
{
使用类型=T[第一];
};
(我知道我需要先删除所有扩展数据块,但请暂时忽略它)

因此,在使用它之后:

generate_dimensions<int, 3, 4, 5>::type;
生成维度::类型;
VC++声称类型为
int[3]
(所有发布的更新都已安装)。而ideone C++14编译器(gcc?),例如
int[3][4][5]

我的问题是:哪个编译器是正确的?如果有,为什么


VC++编译器版本是19.00.24210,适用于x86。

您使用哪一版本的visual c++因为在19.00.23720.0(x86)中()您的代码是一种魅力产生
int[3][4][5]
…@W.F.,谢谢,我会更新问题
19.00.23506 for x86
也会给出
int[3][4][5]
我猜这是您的版本错误…:/@W.F.,可能是这样。我也试过了测试仪,得到了正确的结果。有没有一个地方我可以提交错误?