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

  • @[email protected]
    link
    fedilink
    94 months ago

    What’s the purpose of this? If you want to access an index in an array, isn’t using integers easier?

    And if you want string literals, you can make a map and access the key that way as well

    • @[email protected]
      link
      fedilink
      144 months ago

      Does it matter? OP had an itch. He scratched it, and shared it with the world.

      The reason could be “I wonder if I can?”. That’s good enough.

    • @Serpent7776OP
      link
      English
      134 months ago

      There’s no purpose really. It was more of “wonder if I can” and also nice way to learn custom literals.

      • @[email protected]
        link
        fedilink
        24 months ago

        Yeah it’s always a good way to learn things.

        I only asked because I was genuinely curious if there was something I was missing about why you created this, that’s all.

  • @[email protected]
    link
    fedilink
    English
    24 months ago

    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.

    • @Serpent7776OP
      link
      English
      24 months ago

      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).

      • @[email protected]
        link
        fedilink
        English
        24 months ago

        Sounds like a plan for a funsies long weekend, might send a PR if I advance with it enough.