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

  • _sideffect@lemmy.world
    link
    fedilink
    arrow-up
    10
    arrow-down
    1
    ·
    10 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

    • dankm
      link
      fedilink
      arrow-up
      17
      arrow-down
      1
      ·
      10 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.

    • Serpent7776@programming.devOP
      link
      fedilink
      English
      arrow-up
      14
      ·
      10 months ago

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

      • _sideffect@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        10 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.

  • lambalicious@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    10 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.

    • Serpent7776@programming.devOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      10 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).