Casting an expression to bool means testing for 0 or !=0 for arithmetic types

Dmitry Olshansky dmitry.olsh at gmail.com
Sat Jul 31 15:00:45 PDT 2010


On 31.07.2010 23:44, Pluto wrote:
> This part has always bothered me. Could somebody please explain to me the
> rationale behind limiting functions to one usable error code?
>
> if(function())
> ~~
>    
Inherently if is for testing _condition_ which is true/false. Going 
futher you'd just reinvent switch statement.
which if perfectly OK for it, here it goes:
     switch(function()){
         case ERR_CODE1:
             // ---
         break;
         case ERR_CODE2:
             // ---
         break;
             // ---
         default:
             // ---
         break;
     }
Honestly, I'd suggest using exceptions instead of error codes.
Usage of error codes scales poorly and itself is very error-prone, also 
killing the return value of functions just for error code leads to very 
awkward design.
> :Pluto
>    


-- 
Dmitry Olshansky



More information about the Digitalmars-d-learn mailing list