Стандарт C++11/14: вывод типов и move семантика

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

КОМЕНТАРІ • 8

  • @waffleboot
    @waffleboot 7 років тому

    Почему в perfect forwarding на 1:50:00 указан исходник std::forward(::type& t), когда передается rvalue?
    У std::forward же два определения: для type& и type&&.
    По коду вроде дергается Foo&& std::forward(std::remove_reference::type&&)

    • @AlexanderSmal
      @AlexanderSmal 7 років тому

      У std::forward только одно определение, оно есть 1:43:30. Это определение по-разному раскрывается для случая lvalue и rvalue. В этом определении std::forward *всегда* принимает значение по обычной ссылке, т.е. аргумент функции std::forward в обоих случаях один и тот же, отличается тело функции и тип возвращаемого значения.

  • @normannspectator
    @normannspectator 6 років тому

    Люди добрые, пожалуйста, дайте ссылку на видео где этот докладчик рассказывает про упомянутый здесь (1:11:30) доступ к временному объекту через константную ссылку в старом стандарте.

  • @stfreve
    @stfreve 8 років тому +2

    Так и не понял, почему в функции void foo(int a), decltype(a) == int& ?
    Проверил на такой функции:
    void foo(int a){
    decltype(a) b = a;
    b = 2;
    std::cout

    • @AlexanderSmal
      @AlexanderSmal 8 років тому +4

      +Владимир Лалаян всё верно, я забыл дополнительные скобки - нужно было написать decltype((a)). Это просто две формы decltype: если вызвать её от имени переменной, то получим тип с которым она была определена, а если с выражением - то тип соответствующего выражения. В данном случае нам нужен именно тип a как выражения, т.к. по этому типу будут выводиться параметры при вызове шаблонной функции.

    • @stfreve
      @stfreve 8 років тому

      Alexander Smal А, ну тогда ясно. Спасибо. И за качественную лекцию тоже :)

  • @jsgaming9839
    @jsgaming9839 5 років тому

    На экране куча-мала и сиди догадывайся про какую именно строку кода говорит в данный момент докладчик.

  • @eugene-shmakov
    @eugene-shmakov 7 років тому +3

    "Фичи", "баги", "бэк-компэтибилити", "гайд-лайны"... Русских слов автору почему-то не хватает. Фраза о том, что "C++ отстал от Java" звучит довольно невежественно.