Boost logo

Boost :

From: Michael Kenniston (Msk_at_[hidden])
Date: 2001-07-10 16:09:54

At least two compilers reserve the identifier "pascal" as a keyword.
By my reading of the C++ standard this is ISO-non-compliant, and it
creates problems for any units library. Normally one could just choose
a new name for something, but the word "pascal" /is/ the internationally

standard term for the basic SI unit of pressure.

Changing the first letter to upper case ("Pascal") is not a good
because it violates a standard - [NIST SP811] par 9.1 says "When spelled

out in full, unit names are treated like ordinary English nouns. Thus
names of all units start with a lower-case letter, except at the
of a sentence or in capitalized material such as a title.")

Adding an underscore on the end ("pascal_") works, but it doesn't
seem fair to impose that irregularity on users of compliant compilers.
We could make it regular by adding an underscore to the end of
/every/ unit of measurement, but that's even uglier.

Would it be reasonable to add new macro
This would allow compliant compilers to use "pascal", and only
non-compliant users would see the irregular "pascal_".

At first this seems like an application-specific flag, but it does look
like a true compliancy failure and it could impact /any/ program
that does scientific or engineering calculations.

- Michael Kenniston
[NIST SP811] National Institute of Standards and Technology, Special
Publication 811, "Guide for the Use of the International System of
Units (SI)".

Boost list run by bdawes at, gregod at, cpdaniel at, john at