Size: a a a

2020 April 16

CD

Constantine Drozdov in pro.cxx
Nikita Provotorov
Ну это наверное можно порешать с помощью forwarding references + SFINAE
особенно для виртуальных функций
источник

CD

Constantine Drozdov in pro.cxx
так что еще вводим правило, запрещаюшее публичные виртуальные функции
источник

NP

Nikita Provotorov in pro.cxx
Constantine Drozdov
особенно для виртуальных функций
😔
источник

NP

Nikita Provotorov in pro.cxx
А вообще нефик биндить объекты переданные по ссылке))
источник

NP

Nikita Provotorov in pro.cxx
Хочешь биндить, принимай по указателю
источник

CD

Constantine Drozdov in pro.cxx
Nikita Provotorov
Хочешь биндить, принимай по указателю
а что с nullptr делать?
источник

CD

Constantine Drozdov in pro.cxx
в общем, этот костыль бьерна, допускающий 5 как int const&, наверное, самая большая ошибка проектирования языка на текущий момент
источник

NP

Nikita Provotorov in pro.cxx
Constantine Drozdov
а что с nullptr делать?
Считать за инвариант
источник

CD

Constantine Drozdov in pro.cxx
Nikita Provotorov
Считать за инвариант
Мне из-за него надо будет исключения с конструктора бросать
источник

ПК

Побитый Кирпич in pro.cxx
Constantine Drozdov
в общем, этот костыль бьерна, допускающий 5 как int const&, наверное, самая большая ошибка проектирования языка на текущий момент
На самом деле, запрет такого даёт немного
источник

NP

Nikita Provotorov in pro.cxx
Constantine Drozdov
Мне из-за него надо будет исключения с конструктора бросать
Я имею в виду обязать call-side гарантировать что передан не nullptr
источник

ПК

Побитый Кирпич in pro.cxx
Побитый Кирпич
На самом деле, запрет такого даёт немного
Потому что ты всё ещё можешь принять ссылку на короткоживущие объект
источник

ПК

Побитый Кирпич in pro.cxx
В этом плане prvalue ничем не отличается от переменной на стеке
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
Потому что ты всё ещё можешь принять ссылку на короткоживущие объект
Я не могу получить int& временем жизни меньше, чем окружающий scope вызова фунцкии
источник

ПК

Побитый Кирпич in pro.cxx
Constantine Drozdov
Я не могу получить int& временем жизни меньше, чем окружающий scope вызова фунцкии
У тебя this может жить дольше, чем аргумент функции
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
У тебя this может жить дольше, чем аргумент функции
Это не мои проблемы, я называюсь _view
источник

ПК

Побитый Кирпич in pro.cxx
Constantine Drozdov
Это не мои проблемы, я называюсь _view
Ну дак почему тогда ты предъявы кидаешь к prvalue? Скажи, что ты view и тебе нельзя передавать prvalue
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
Ну дак почему тогда ты предъявы кидаешь к prvalue? Скажи, что ты view и тебе нельзя передавать prvalue
Соблюдать это правило чуть сложнее, чем не передавать мне аргументы, которые аллоцированы в хипе, и не аллоцировать меня в хипе
источник

CD

Constantine Drozdov in pro.cxx
Тут, собственно, очень простое замечание - скажем, если объект A получает ссылку на Б в ктор, то объект А умрет раньше объекта Б
источник

ПК

Побитый Кирпич in pro.cxx
Constantine Drozdov
Соблюдать это правило чуть сложнее, чем не передавать мне аргументы, которые аллоцированы в хипе, и не аллоцировать меня в хипе
Точно также неконтролируемо языковыми средствами
источник