将用户定义的向量分配给boost :: qvm :: vec

时间:2018-03-08 13:37:53

标签: boost

我有一个Vector:

struct vector { double coord[3]; };

我能做到:

Vector v = q; // q is a qvm::vec

但该怎么做:q = v;

我发现的唯一方法是qvm::assign (q, v);。否则编译器会告诉我:

no operator found which takes a right-hand operand of type Vector*.

我按照文档来定义特征(docs)。这可能是允许作业v = q起作用的原因。

如何做q = v(如果可能的话)?

1 个答案:

答案 0 :(得分:1)

assign调用是一种方法(尽管您也可以使用convert_to<T>)。

原因隐含在FAQ

的一部分

enter image description here

operator=的推理完全相同,只能在类型本身内声明。

你可以通过继承来扩展接口,但这会删除POD-ness,这会破坏使用QVM的目的(这是为了避免开销)。