よく単位を間違えて代入してしまうので、
別の型にしておけばいいじゃん、と思って

typedef double millisecond;
typedef double microsecond;
typedef double second;

ってやったけど、

millisecond x = 0.1;
microsecond y = 0.2;
second z = 0.3;

としても x=y; y=z; z=x; とかなんの警告も出ないのね。
やっぱそれぞれクラスを作らなきゃだめ?