Here's a question for anyone who knows about C/C++ technicalities. I recently noticed that gcc/g++ allows the following for ints or any other builtin type. type_name function( int ); type_name function( const int x ){ ... } i.e. the declaration and definition parameter types are nominally different. Is this correct in ISO C++? I couldn't find any mention of this in Stroustrup. It seems eminently sensible to me that this should be allowed. I often want the compiler to check that x is const within function but don't need to declare a variable const if it's passed by value. OTOH C++ allows overloading - type_name function( const int& x ){ ... } type_name function( int& x ){ ... } can be defined differently. -- JDL Non enim propter gloriam, diuicias aut honores pugnamus set propter libertatem solummodo quam Nemo bonus nisi simul cum vita amittit.