I agree with you if the constant represents some sort of 'range' (like the
error code ex you gave). But what about single value constants like a 'max
of something'? Won't a const be a better fit here rather having an enum
with just 1 entry?

-mandeep



On Fri, Feb 14, 2014 at 5:02 PM, Blasche Alexander <
[email protected]> wrote:

>  Hi.
>
> An enum has the advantage that you have a certain level of type safety and
> in my opinion it makes the API much more readable.
>
> foo(int x)
>
> is far less certain on what to pass then
>
> foo(ErrorCode x)
>
> I immediately see what the range of possible values is (based on the enum
> definition) while the int could be any arbitrary int constant you came
> along. QtCreator and its predictive input/tab completion will thank you for
> it.
>
>  --
>
> Alex
>   ------------------------------
> *From:* 
> [email protected][development-bounces+alexander.blasche=
> [email protected]] on behalf of Mandeep Sandhu [
> [email protected]]
> *Sent:* Friday, February 14, 2014 11:29
> *To:* [email protected]
> *Subject:* [Development] Best practice for defining an integer constant
>
>    I have a need for defining an integer constant that'll be used for
> initializing a member variable of a private class.
>
>  The Qt coding conventions (http://qt-project.org/wiki/Coding-Conventions)
> recommend using an enum over 'const int'.
>
> The rationale given there is that an enum will be replaced at compile-time
> resulting in 'faster code'. Won't that be the case with 'const int' as
> well? I think a 'const int' will be inlined in the code. CMIIW.
>
>  Also, there are a couple of instances in our current code where such
> (static and non-static) constants are used. Whats the recommended way?
>
>  Thanks,
>  -mandeep
>
>
> _______________________________________________
> Development mailing list
> [email protected]
> http://lists.qt-project.org/mailman/listinfo/development
>
>
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to