具有数组类型的C++add_pointer模板
C++ add_pointer template with array type
我想使用C++<type_traits>
标头中的std::add_pointer<type>
模板来构造指向数组类型的指针。
但是,以下生成错误
double *y[2];
std::add_pointer<double[2]>::type x;
y = x; // generates error
SDK 7.1附带的MSVC C++编译器显示
错误C2440:"=":无法从"double(*)[2]"转换为"double*[2] '没有到数组类型的转换,尽管有到引用或指针的转换阵列
我在这里想念什么?
编辑:我希望y是一个二维数组,其中一个维度为2,另一个变量为。预期用途为
y[i][0]
和y[i][1]
y
和x
在这里的类型不相同。
正如错误消息所说,y
是一个具有double*
类型元素的数组。x
是指向类型为double[2]
的数组的指针。
您可以将y
的类型更改为:
double (*y)[2];
std::add_pointer<double[2]>::type x = new double[2][2];
y = x;
// use y[0][0], y[0][1], y[1][0] ...
delete[] y;
实时
相关文章:
- .cpp和.h文件中的模板专用化声明
- C++模板来检查友元函数的存在
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- 部分定义/别名模板模板参数
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 如何在c++中为模板函数实例创建快捷方式
- 使用C++中的模板和运算符重载执行矩阵运算
- 有人能分解一下这个c++模板的语法吗
- 如何在c++17中制作一个模板包装器/装饰器
- 模板化建造师专业化
- 调用专用模板时出错"no matching function for call to [...]"
- 模板元程序查找相似的连续类型名称
- 如何在C++20中创建模板别名的推导指南
- 没有名称的C++模板参数
- 将"pointer to pointer"传递给模板函数
- 'variable' 不是类型 'pointer to member function' 的有效模板参数
- 我如何从模板参数中提取value_type (std::vector和plain pointer)