Size: a a a

2020 August 02

CD

Constantine Drozdov in pro.cxx.holywars
&& -> const&
источник

CD

Constantine Drozdov in pro.cxx.holywars
чтобы такой хуйни не было надо написать
источник

CD

Constantine Drozdov in pro.cxx.holywars
value_type operator [] (size_t index) && {
      return move(operator[] (index));
}
источник

CD

Constantine Drozdov in pro.cxx.holywars
Constantine Drozdov
Она есть когда написано
const_reference operator [] (size_t index) const
это офишиалли худшее, что было сделано в С++11
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
Constantine Drozdov
чтобы такой хуйни не было надо написать
Язык тебе позволяет очень просто написать геттер с const&. На уровне паттернов уже должно сидеть, что если видишь &, то следи за лайфтаймами вручную
источник

CD

Constantine Drozdov in pro.cxx.holywars
/dev/urandon ¯\_(ツ)_/¯
Язык тебе позволяет очень просто написать геттер с const&. На уровне паттернов уже должно сидеть, что если видишь &, то следи за лайфтаймами вручную
Это все полностью исправляется
источник

CD

Constantine Drozdov in pro.cxx.holywars
Так что офишиалли вся проблема только в дизайне библиотек
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
Constantine Drozdov
value_type operator [] (size_t index) && {
      return move(operator[] (index));
}
Ну вот такое каждый раз писать - не очень решение
источник

CD

Constantine Drozdov in pro.cxx.holywars
/dev/urandon ¯\_(ツ)_/¯
Ну вот такое каждый раз писать - не очень решение
Извини, шаблона категории не завезли
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
На каждый класс с геттером по ссылке
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
На каждый метод
источник

CD

Constantine Drozdov in pro.cxx.holywars
/dev/urandon ¯\_(ツ)_/¯
На каждый класс с геттером по ссылке
На неконстантной ссылке все хорошо
источник

CD

Constantine Drozdov in pro.cxx.holywars
А на константной ссылке это мегапроёб всей ссылочной системы C++11
источник

CD

Constantine Drozdov in pro.cxx.holywars
возможность преобразования && -> const& имплиситом
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
Делать дубликат с const&, потом &&, потом для const/volatile методов, потом noexcept, потом..
источник

CD

Constantine Drozdov in pro.cxx.holywars
нельзя написать const ЛЕВАЯ_СУКА_ССЫЛКА
источник

CD

Constantine Drozdov in pro.cxx.holywars
/dev/urandon ¯\_(ツ)_/¯
Делать дубликат с const&, потом &&, потом для const/volatile методов, потом noexcept, потом..
нет дубликата с const&
источник

CD

Constantine Drozdov in pro.cxx.holywars
хотя можешь && = delete приписать
источник

CD

Constantine Drozdov in pro.cxx.holywars
/dev/urandon ¯\_(ツ)_/¯
Делать дубликат с const&, потом &&, потом для const/volatile методов, потом noexcept, потом..
в любом случае геттеры копипастить вроде ты сам выбрал
источник

CD

Constantine Drozdov in pro.cxx.holywars
когда-нибудь человеческий способ автогенерации тривиальных геттеров даже в стандарте будет
источник