问题描述
我正在试验 C++20 模块,但遇到了一个我不知道如何修复的错误。
请参阅以下模块文件(VClipTypes.ixx):
module;
#include <vector>
export module VClipTypes;
export class Vec3
{
public:
float x;
float y;
float z;
};
export class ClipVertex
{
public:
Vec3 _point;
};
export class ClipMesh
{
public:
std::vector<ClipVertex> _vertices;
};
和 main.cpp:
#include <iostream>
import VClipTypes;
int main()
{
ClipMesh m;
m._vertices.push_back(Vec3());
std::cout << "mesh vert count: " <<m._vertices.size()<< std::endl;
}
但是,如果我将 Vec3 类移动到它自己的模块接口(Vector.ixx)中
module;
export module Vector;
export class Vec3
{
public:
float x;
float y;
float z;
};
然后在 VClipTypes.ixx 和 main.cpp 中添加一个 import Vector;
语句,然后构建失败并出现以下错误:
Error C2664 'void std::vector<ClipVertex,std::allocator<ClipVertex>>::push_back(const _Ty &)': cannot convert argument 1 from 'Vec3' to 'const _Ty &'
在我看来,矢量模板实例化已经发生了一些变化,但我不能确定。我确定我在某个地方做错了什么,但我看不到哪里。
你能指出我的错误吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)