std::array<T,N> 需要以另一种类型获取
std::array<T,N> need to be fetched in another types
我有一个类,它有一个std::数组作为成员变量,如下所示:
class my_class{
std::array<point<float>,4> corners;
}
我需要将这些corners
传递给许多函数。这些函数接受(point<T>* const)
。所以,我只是简单地通过corners.data()
。问题是当某些函数接受point
类的特殊type
时。例如,(point<double>* const)
。我应该如何在尽可能少的性能开销的情况下将角传递给那个函数。
代码:
class my_class{
public:
std::array<point<float>,4> corners;
}
void first_method(point<float>* const input);
void second_method(point<float>* const input);
int main(){
my_class foo;
first_method(foo.corners.data()); // OK
second_method(foo.corners.data()); // Problem
}
编辑:
我刚刚意识到这个类与我的问题无关,我们可以将其简化为:
void first_method(point<float>* const input);
void second_method(point<float>* const input);
int main(){
std::array<point<float>,4> corners;
first_method(corners.data()); // OK
second_method(corners.data()); // Problem
}
你不能。
数组的类型错误,或者函数的参数类型错误。
要么修复数组类型,要么修复函数,要么制作第二个数组。
相关文章:
- 另一种类型的智能ptr,比如具有弱refs的unique_ptr
- void* 数组将元素转换为另一种类型
- 在 c++ 中将一种结构类型分配给另一种类型
- 将空基类优化对象强制转换为另一种类型是否会破坏严格的别名?
- 将 32 位浮点数和不强制转换的 32 位整数与双精度进行比较,当其中一个值可能太大而无法完全适合另一种类型时
- 何时与另一种类型兼容
- C 模板可以匹配(仅)一种类型的列表或另一种类型的列表
- 是否可以将一种类型的数组转换为大小不同的另一种类型的数组?
- 在比较中使用已强制转换为另一种类型的函数指针是否定义良好?
- 多态变体,并将一种类型的引用绑定到另一种类型的引用
- 如何使用模板元编程在 C++17 中将一种类型转换为另一种类型
- 将字符阵列施放到另一种类型中是否违反了严格的确定规则
- 创建一个从一种类型到另一种类型的别名
- 如何使一种类型的STL对只占用另一种类型的空间"empty struct"?
- c++如何打印另一种类型的变量的String属性的值
- 将"this"指针强制转换为另一种类型不违反严格锯齿?
- 使用模板将语义从一种类型移动到另一种类型
- 将所有 int 类型更改为另一种类型,使用 #define 用于大型程序
- C++传递与另一种类型相同的类型
- C++ 为什么我们需要从一种类型显式转换为另一种类型