これを行う方法が見つかりませんが、GCC / LLVMのコンパイラフラグがあり、これについて警告することができます。
typedef float distance_feet_t;
typedef float distance_meters_t;
void shouldWarnMe ( void )
{
distance_feet_t feet = 10.0f;
distance_meters_t meters = 20.0f;
/* this should generate a warning */
distance_meters_t total = meters + feet;
}
本質的には、変数の型を再定義して、それらを混合し始めると、コンパイラがキャストが欠落していることを警告するようにします。
私は試しました-壁:警告なし。
typedefを使用せずにこの問題を解決する方法があります。しかし、問題は、説明されているようにtypedefでそれを行う方法はありますか?