Anonymous
это больше чем факт
Berkus
это херня а не факт
Anatoly
я не верю в непогрешимость MSC, но я видел за свою жизнь намного меньше багов MSC, чем GCC :)
ну, я тоже удовлетворен качеством, так что поддерживаю, но в данном случае я с MSVC не согласен
Anonymous
много мусора - хреновая оптимизация
Berkus
ты несешь бред
Anonymous
gcc золотая середина которой следует придерживаться
Anonymous
бред несешь тут ты, мне кажется
Berkus
и столман пророк ее ага
Крылатый
Чо за срач, блять((
Aidar
А про запоминание способности юзера юзать форсинлайн это не про msvc случайно?
Berkus
гцц кусок упоротого кодеца который никто толком даже поддерживать не хочет - только за деньги
Igor
А про запоминание способности юзера юзать форсинлайн это не про msvc случайно?
не, это Полухин какой-то другой компилятор приводил в пример
Constantine
я не уверен, что в стандарте прописана типизация лямбд
Aidar
Жаль
Aidar
Было бы смачно
Anatoly
я не уверен, что в стандарте прописана типизация лямбд
тип лямбды в конечно итоге дело компилятора, а не твое
Anatoly
ты пишешь выражение [](){}
Constantine
тип лямбды в конечно итоге дело компилятора, а не твое
да, но в данном случае от него требуется, чтобы этот тип зависел только от сигнатуры функции, в которой объявлен
Aidar
Кто это требует
Constantine
правило ODR же
Aidar
Ты явно написал код 1 раз
RattenKong 🦧🐀🦍️
блин, я вместо подготовки к экзамену читаю про pqsort
Anatoly
сигнатура функции появится только тогда, когда ты инстанцируешь шаблон функции конкретными типами
Aidar
Забей
RattenKong 🦧🐀🦍️
за щооо
Constantine
а если я сверху тип std::function подменю
Aidar
Это шаблон
Constantine
а если у меня поведение функции зависит от внешней среды?
Aidar
Без шаблона ты сам привел цитату из стандарта
Aidar
Что значит зависит
Aidar
Тип на этапе компиляции известен
Constantine
например, template <T> void f() { std::vector<T> object; }
Aidar
Это шаблон
Constantine
именно
Aidar
Что не так то
Aidar
Где лямбда
Constantine
f<int😠) может быть разной в разных единицах компиляции, не находишь?
Aidar
Нет
Berkus
нет
Anatoly
это будут разные типы, если будут разные параметры
Constantine
ага
Aidar
Шаблоны не линкуются как обычные штуки
Constantine
ага, а теперь в шаблонной функции объявлена лямбда
Anatoly
все инстансы с одинаковыми параметрами удаляются и остается один тип
Aidar
Один код*
Anatoly
не объявлена лямбда, а ты написал лямба выражение
Aidar
Ну и тип тоже
Constantine
хорошо, я использую тип лямбда-выражения этой функции для инстанса шаблонного класса
Aidar
Тип и так один будет
Aidar
Забей
Aidar
Блиг
Aidar
Тебе это гарантируют
Aidar
Какая разница что делает компилятор
Constantine
где?
Aidar
Упарываещься опять
Constantine
я ушел курить стандарт, короче
Constantine
ща, только найду еще одну лямбду
Constantine
и накатаю фидбек в майкрософт)
Constantine
вот это - угроза 😆
Berkus
в майкрософт не надо, они могут и починить
Александр
std::is_same<decltype([]{}), decltype([]{})>::value == false;
Александр
Если я правильно понял суть спора
Aidar
Не правильно
Александр
:(
Aidar
std::is_same<decltype([]{}), decltype([]{})>::value == false;
Эти лямбды должны быть в разных еденицах компиляции в шаблоном функции
Berkus
ну лававей же стдлибой занимается в основном?
Berkus
а это явно компайлер тим
Berkus
ну это то всяко
Berkus
но лучше запилить багу в компайлер тим, а ссылку на нее - лававею
Constantine
std::is_same<decltype([]{}), decltype([]{})>::value == false;
вопрос: являются ли well-formed по стандарту конструкции вида template <typename T> inline std::function<void()> f(T * object) { return [object](){}; }
Berkus
и саттера в cc:
Aidar
Прикольно что я тут выпендриваюсь, а сам ни одного вменяемого кода на си++ не написал
Berkus
вопрос: являются ли well-formed по стандарту конструкции вида template <typename T> inline std::function<void()> f(T * object) { return [object](){}; }
являются, т.к. шаблоны инстанциируются на месте применения и компайлер волен их схлопывать если они оказались дубликатами
Aidar
А ещё я не работаю нигде и никогда не работал