Possible Duplicate:
casting unused return values to void
I read some source code, and in it many virtual functions in the interface classes are declared and default-implemented as such:
virtual bool FunctionName(TypeName* pointer)
{
(void)pointer;
return true;
}
May I ask what is the purpose of casting the pointer to void in the default implementation?
Multiple purposes depending on what you cast
T
, and you return the result of some function call that could be different from T
in some situation. An explicit cast to T
could, in the void
case, prevent a compile time error:int f() { return 0; } void g() { return (void)f(); }
(void)a, b
will never invoke an overloaded comma operator function).Note that the Standard guarantees that there will never be an operator void()
called if you cast a class object to void
(some GCC versions ignore that rule, though).
In this case it's just to avoid compiler's warning about unused parameter.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With