The typedefs mirror the templating syntax and can always be made fairly straightforwardly, as opposed to trying to figure out where to put the "Int", i.e. is it "BufferedIntReader" or "IntBufferedReader". With multiple template parameters it gets even more hairy, but the _ syntax, simply leads to ``typedef std::map<std::string,int> Map_Str_Int``.
The typedefs mirror the templating syntax and can always be made fairly straightforwardly, as opposed to trying to figure out where to put the "Int", i.e. is it "BufferedIntReader" or "IntBufferedReader". With multiple template parameters it gets even more hairy, but the _ syntax, simply leads to ``typedef std::map<std::string,int> Map_Str_Int``.
```
### Word Boundaries
Basic ways of distinguishing word boundaries with ``<LWORD>=[a-z]+`` and ``<UWORD>=[A-Z][a-z]+``
Basic ways of distinguishing word boundaries with ``<LWORD>=[a-z]+`` and ``<UWORD>=[A-Z][a-z]+``
* Camel case
* Camel case
* upper camel ``<UCAMEL>``=``<UWORD>+``, e.g. Nexus, HelloWorld, or MyGreatApi
* upper camel ``<UCAMEL>``=``<UWORD>+``, e.g. Nexus, HelloWorld, or MyGreatApi
* lower camel ``<LCAMEL>``=``<LWORD><UWORD>*, ``e.g. nexus, helloWorld, or myGreatApi
* lower camel ``<LCAMEL>``=``<LWORD><UWORD>*, ``e.g. nexus, helloWorld, or myGreatApi
* Snake case ``<SNAKE>``=``<LWORD>(_<LWORD>)*``, e.g. nexus, hello_world, my_great_api
* Snake case ``<SNAKE>``=``<LWORD>(_<LWORD>)*``, e.g. nexus, hello_world, my_great_api
## C++ Word Definitions
With those definitions in mind, let's define a set of word conventions. The main technical goal is to use the different ways of writing words to distinguish between as many parts of the language as possible.
With those definitions in mind, let's define a set of word conventions. The main technical goal is to use the different ways of writing words to distinguish between as many parts of the language as possible.