gologiusの巣

プログラミングなどの技術メモです。誰かの役に立てるとうれしいです。

error C1001: コンパイラで内部エラーが発生しました。 とバトルした話

普通のC++で製作していたものにGUIつけようと思って,Visual StudioC++/CLI を用いて移植をしていたときに起きたエラーです.

ググっても情報量が少ない,状況も解決策もバラバラそもそもエラー説明が役に立たないのでかなり苦労しました.

私の場合の解決策は,自作クラスAを引数にする関数があり,その関数が参照渡しにすることでした.

つまり

class A 
{
}
class B
{
  void calc(A x, A y);
}

になっていたのを

class A
{
}
class B
{
  void calc(A &x, A &y)
}

にしたら直りました.

また,私の場合はEigenを class A で使用していたため,

class A
{
  void add(Eigen::Vector3f s, Eigen::Vector3f t)
}
を
class A
{
  void add(Eigen::Vector3f &s, Eigen::Vector3f &t)
}

にする必要がありました.