26-07-2018, 12:28 PM
If one were to use the strategy of defining all the constants used within a file at the top of the file, either as static const or in an unnamed namespace, but some of the constants are used in multiple places and others are only used in single places, then those that are only used in single places will violate Rule 3-4-1.
If those that are used only in single places are subsequently moved into blocks with reduced scope, then the constants are scattered around the file.
This could create a maintenance headache because it is more difficult for a developer to find a constant.
Furthermore, if a developer needs to use a singly-used constant now in another place, they might not realise that the constant has already been defined (and then widen its scope) but instead add in a new singly-used constant of reduced scope in the new place.
It there some way to put all of the defined constants into a well-known location, but then not violate Rule 3-4-1 for the singly-used ones?
If those that are used only in single places are subsequently moved into blocks with reduced scope, then the constants are scattered around the file.
This could create a maintenance headache because it is more difficult for a developer to find a constant.
Furthermore, if a developer needs to use a singly-used constant now in another place, they might not realise that the constant has already been defined (and then widen its scope) but instead add in a new singly-used constant of reduced scope in the new place.
It there some way to put all of the defined constants into a well-known location, but then not violate Rule 3-4-1 for the singly-used ones?
<t></t>