È corretto confrontare un doppio con zero se lo hai inizializzato in precedenza a zero?

Ho imparato che confrontare un doppio usando == non è una pratica saggia. Tuttavia mi chiedevo se controllare se un doppio è stato inizializzato potrebbe essere pericoloso o meno. Ad esempio, sapendo che una variabile doubleVar non può essere zero se è stata inizializzata, è sicuro farlo?

 Foo::Foo(){ doubleVar = 0.0; // of type double } void Foo::Bar(){ if(doubleVar == 0){ // has been initialized? //... }else{ //... } } 

In IEEE-754, per farla breve:

 double d; d = 0.0; d == 0.0 // guaranteed to evaluate to true, 0.0 can be represented exactly in double 

ma

 double d; d = 0.1; d == 0.1 // not guaranteed to evaluate to true