私は高レベルのインターフェイスを備えた低レベルのコードに取り組んでおり、プレーンな古いデータ型 (FILETIME 構造体など) の単体テストのための比較演算子の必要性を感じましたが、C++ はメンバーごとの比較さえ提供していないため、次のように書きました。
template <typename Type>
std::enable_if_t<std::is_pod<Type>::value, bool> operator==(const Type& a,
const Type& b) {
return std::memcmp(&a, &b, sizeof(Type)) == 0;
}
だから私の質問は、これは良い方法なのか、それとも開発サイクルの後半で問題を引き起こす隠れた悪魔がいくつかあるのかということですが、今のところはうまくいっています.