Effective Ranges: A Tutorial for Using C++2x Ranges - Jeff Garland - CppCon 2023

Поділитися
Вставка
  • Опубліковано 26 лис 2024

КОМЕНТАРІ • 19

  • @VoidloniXaarii
    @VoidloniXaarii 10 місяців тому +5

    Thank you so much for this rather mind-blow/opening talk. The future feels intimidating, even discouraging to my little knowledge, and yet so full of awesome promise and gut feeling tells me this stuff might be huge as c++ reinvents itself

  • @TheDoomista
    @TheDoomista 11 місяців тому +14

    I was very confused why half of these examples don't work, then I went to linked godbolt example and realized much of the functionality described in this talk is only available in rangesv3 and not in the standard. Pity.

    • @DebashishGhoshOfficial
      @DebashishGhoshOfficial 11 місяців тому +2

      For instance, the range_v3 join(delimeter) turns out to be join_with(delimeter) in the std library.

  • @もりけんいち-h4z
    @もりけんいち-h4z 11 місяців тому +2

    C++3x+1 point plus linear algebra. Thank you cppcon.

  • @NickDrian
    @NickDrian 11 місяців тому +1

    Very useful, thanks!

  • @germanassasin1046
    @germanassasin1046 11 місяців тому +7

    What always boggled my mind is that cpp folks call callable object a functor which is obviously not a functor. And now when they introduced concept similar to what functor actually is, they called it projection. Why?

    • @WutipongWongsakuldej
      @WutipongWongsakuldej 11 місяців тому +1

      Probably because it has been that way for the past 30 years. Old habit dies hard I guess.

    • @dravorek
      @dravorek 11 місяців тому +2

      "Callable" has been in the C++ standard for a while. As a specific concept it's in C++20 as std::invocable.
      Projections are very specifically not just any callable, they are unary callables that return a value.

    • @eugnsp
      @eugnsp 9 місяців тому +1

      Because in the most typical use case demonstrated in the presentation this is exactly how maths calls it.

  • @cristianinujazznight3044
    @cristianinujazznight3044 11 місяців тому

    Ufff thank you so much :D

  • @peregrin71
    @peregrin71 3 місяці тому +2

    I use "rng" because it is shorter and more obvious... ehr no... it makes your code "non standard" just stick with `std::ranges::` (typing less is not a primary goal)

  • @ABaumstumpf
    @ABaumstumpf 7 місяців тому +1

    That views cache is yet another red flag: Something is seriously wrong with just how much damage the committee is doing to the language.
    Also claiming the talk to be about std::ranges and then using rangev3 (which was objectively more mature and superior)... that is just wrong.
    The example at 40:00 - rv::join(string_view(" -- "))
    That is NOT valid code when using std::ranges.

  • @christianchung9412
    @christianchung9412 11 місяців тому

    cool

  • @fgfanta
    @fgfanta 11 місяців тому +3

    I love C++ for sentimental reasons, the 3rd programming language that I started teaching myself when I was a boy, in the days of MS-DOS. But if it takes one hour to explain ranges... I don't know if I really want to learn these too.

    • @northwestfellow6416
      @northwestfellow6416 8 місяців тому

      It takes a little bit more than one hour, it is just a brief video ^_^

    • @ABaumstumpf
      @ABaumstumpf 7 місяців тому +3

      Why?
      as if 1-2 hours is a lot.... if you are too lazy for even that then i would assume you do not know how to program in any language to begin with.

    • @jasonenns5076
      @jasonenns5076 2 дні тому

      Well, you could slowly learn about them using C++ ref and watch this video bit by bit.

  • @eugnsp
    @eugnsp 9 місяців тому +1

    Inability to pass views by const-ref is ridiculous.