単純なクラスがあり、std::vectorを使用してそのクラスのすべてのインスタンスを含めています。しかし、私がそうするとき:
std::vector<MyType> v;
MyType m(1, 2, 3);
v.push_back(m);
または私がそうする場合:
v.push_back(new MyType(1, 2, 3);
このエラーが発生します:
error C2664: 'void std::vector<_Ty>::push_back(_Ty &&)' : cannot convert parameter 1 from 'MyType *' to 'MyType &&'
そしてそれが重要な場合は、ここに私のMyTypeコードがあります:
class MyType
{
public:
int a;
int b;
float c;
MyType(int A, int B, float C)
{
a = A;
b = B;
c = C;
}
};
何が悪いのかわかりません。
編集:私のオリジナル(最初のスニペット)のコードは機能します。何らかの理由でソリューションを再構築する必要があり、その後、正常にコンパイルされました。