Size: a a a

2020 July 18

CD

Constantine Drozdov in supapro.cxx
Так что теперь либо простим его, либо будем пытать паяльником до тех пор, пока он не признается, что продолбался
источник

АК

Артём Колпаков... in supapro.cxx
When a virtual function is called directly or indirectly from a constructor or from a destructor (including during the construction or destruction of the class’s non-static data members, e.g. in a member initializer list), and the object to which the call applies is the object under construction or destruction, the function called is the final overrider in the constructor’s or destructor’s class and not one overriding it in a more-derived class. In other words, during construction or destruction, the more-derived classes do not exist.
источник

CD

Constantine Drozdov in supapro.cxx
Артём Колпаков
When a virtual function is called directly or indirectly from a constructor or from a destructor (including during the construction or destruction of the class’s non-static data members, e.g. in a member initializer list), and the object to which the call applies is the object under construction or destruction, the function called is the final overrider in the constructor’s or destructor’s class and not one overriding it in a more-derived class. In other words, during construction or destruction, the more-derived classes do not exist.
Слово статический не найдено
источник

АК

Артём Колпаков... in supapro.cxx
Constantine Drozdov
Слово статический не найдено
http://eel.is/c++draft/class.base.init#17 Хм, можно ли по словосочетанию the polymorphic behavior утверждать, что всё таки динамически?
источник

CD

Constantine Drozdov in supapro.cxx
Артём Колпаков
http://eel.is/c++draft/class.base.init#17 Хм, можно ли по словосочетанию the polymorphic behavior утверждать, что всё таки динамически?
Тут статически и динамически очень странные антонимы. Обязанности резолвить вызов нет, иначе бы не скомпилировался простейший pure virtual function call
источник

АК

Артём Колпаков... in supapro.cxx
Constantine Drozdov
Тут статически и динамически очень странные антонимы. Обязанности резолвить вызов нет, иначе бы не скомпилировался простейший pure virtual function call
Простите, не до конца понимаю вашу мысль
источник

CD

Constantine Drozdov in supapro.cxx
Артём Колпаков
Простите, не до конца понимаю вашу мысль
Нет никакого обязательства для компилятора разрешить вызов во время компиляции
источник

АК

Артём Колпаков... in supapro.cxx
Constantine Drozdov
Нет никакого обязательства для компилятора разрешить вызов во время компиляции
Хм, на быстрый взгляд у компилятора есть вся информация о типе объекта, от чего же нет?
источник

CD

Constantine Drozdov in supapro.cxx
Артём Колпаков
Хм, на быстрый взгляд у компилятора есть вся информация о типе объекта, от чего же нет?
Потому что это не относится к логической модели языка?
источник

АК

Артём Колпаков... in supapro.cxx
Constantine Drozdov
Потому что это не относится к логической модели языка?
Теперь же я не понимаю вас полностью
источник

CD

Constantine Drozdov in supapro.cxx
Артём Колпаков
Теперь же я не понимаю вас полностью
Стандарт не описывает реализацию компилятора, он описывает смысл программы
источник

CD

Constantine Drozdov in supapro.cxx
Как смысл программы изменится от того, будет вызов по vtbl или нет
источник

АК

Артём Колпаков... in supapro.cxx
Constantine Drozdov
Как смысл программы изменится от того, будет вызов по vtbl или нет
Да, не изменится. Но как же принцип не платить за то, что не используешь, как-то так
источник

CD

Constantine Drozdov in supapro.cxx
Артём Колпаков
Да, не изменится. Но как же принцип не платить за то, что не используешь, как-то так
Стандарт не заставляет вас платить
источник

АК

Артём Колпаков... in supapro.cxx
Constantine Drozdov
Стандарт не заставляет вас платить
То есть, вы подразумеваете, стандарт говорит поведение полиморфное, то есть осуществляется вызов final overrider версии, но статически или динамически - зависит от реализации?
источник

CD

Constantine Drozdov in supapro.cxx
Артём Колпаков
То есть, вы подразумеваете, стандарт говорит поведение полиморфное, то есть осуществляется вызов final overrider версии, но статически или динамически - зависит от реализации?
Стандарт описывает то, что получится, если vtbl класса инициализируется между окончанием конструкторов базовых классов и началом инициализации полей, но не указывает, что это делается именно так
источник

АК

Артём Колпаков... in supapro.cxx
Constantine Drozdov
Стандарт описывает то, что получится, если vtbl класса инициализируется между окончанием конструкторов базовых классов и началом инициализации полей, но не указывает, что это делается именно так
Кажется, я вас понял. В любом случае, нужно больше опыта
источник

VS

Void Space01 in supapro.cxx
Привет. Подскажите у меня есть std::map<MyClass, int> MyMap хочу красиво получить максимальное значение int  в MyMap. Соответственно использую std::max_element. Хочется использовать вызов max_element не через передачу функции сравнения, а через перегрузку оператора меньше. Так вот, собственно вопрос: для каких типов надо перегрузить оператор? Я пробовал для const pair<MyClass, int>& и это работает неправильно.
источник

ПК

Побитый Кирпич... in supapro.cxx
Void Space01
Привет. Подскажите у меня есть std::map<MyClass, int> MyMap хочу красиво получить максимальное значение int  в MyMap. Соответственно использую std::max_element. Хочется использовать вызов max_element не через передачу функции сравнения, а через перегрузку оператора меньше. Так вот, собственно вопрос: для каких типов надо перегрузить оператор? Я пробовал для const pair<MyClass, int>& и это работает неправильно.
Для MyClass оператор < надо перегружать
источник

ПК

Побитый Кирпич... in supapro.cxx
MyClass у тебя ключ, он сравнивается
источник