• Gladaed@feddit.org
    link
    fedilink
    English
    arrow-up
    14
    ·
    1 day ago

    Only one of those is a function, get it right. () Call functions <> Specialize Templates, can be used to do compile time calls to things that behave like functions. [] Accesses elements {} Calls constructors, aka functions that do the initial setup.

    Overloading these to do something else gets you in the naughty corner.

    Edit: the implementation of the {} fuckery is no great. Just save the sum instead of all numbers.

    • Kwdg@discuss.tchncs.deOP
      link
      fedilink
      arrow-up
      5
      ·
      1 day ago

      Good point regarding the {} implementation.

      I disagree slightly regarding your point that these aren’t function calls. Yes technically they are different things but effectively they are functions, I cann pass arguments and get a result based on some operations.

      Of course not all of these can do anything but only the constexpr value is actually pretty limited. The other ones are straight up functions