NTL C++ ライブラリを使用しています。次のコードを実行しようとすると:
NTL::ref_GF2 *zero = new NTL::ref_GF2();
NTL::ref_GF2 *one = new NTL::ref_GF2();
set(*one);
EXC_BAD_INSTRUCTION エラーが発生します。
ref_GF2 operator=(long a)
{
unsigned long rval = a & 1;
unsigned long lval = *_ref_GF2__ptr;
lval = (lval & ~(1UL << _ref_GF2__pos)) | (rval << _ref_GF2__pos);
*_ref_GF2__ptr = lval;
return *this;
}
この問題は、コードの set(*one) 行に起因しているようです。
コードの何が問題なのかを理解しようとしましたが、役に立ちませんでした。どんな助けでも感謝します。