I did a code that uses custom literals to allow indexing arrays with ordinals (1st, 2nd, 3rd), all at compile time. Additionally _st works only with 1, _nd only with 2, _rd only with 3. Zero and negative numbers are also not supported and fail compilation.
https://github.com/serpent7776/bits/blob/master/th.cpp/th.cpp
This sounds pretty interesting to do for funsies. I wonder if / how easy can it be extended to support i18n (eg.: “1_ro”, “2_do”, “3_ro”, “4_to” for Spanish).
Also thanks for not supporting negatvie integers. Trying to do that with UDLs over integers leads to rather annoying “funsies”, see StackOverflow and glados-418.
It should be easy to edit the existing code to add support for i18n, but there’s probably no way to make in generic (except for macros).