@ProCxx

Страница 2444 из 2477
Igor
17.10.2018
14:36:58
внезапно вброс ~X() = 0 = default; и наоборот, ~X() = default = 0;

Kitsu
17.10.2018
14:38:57
не могу гугл спросить
"как работают исключения"

Google
Igor
17.10.2018
14:39:12
Так можно? 0_о
нет, это ололо-хотелка на 23й стандарт

Alexey
17.10.2018
14:39:25
Фух

Аттрибутивно-ассоциативный ряд
17.10.2018
14:40:07
"как работают исключения"
а там описано как отреагирует С контекст на исключение из C++ контекста?

Igor
17.10.2018
14:40:14
возникла на волне обсуждения "а почему язык вообще позволяет ~X()=0; и молча срёт в тапки если ты забыл сделать определение чисто-виртуального деструктора"

Alexey
17.10.2018
14:40:19
Kitsu
17.10.2018
14:41:21
а там описано как отреагирует С контекст на исключение из C++ контекста?
нет конечно, и нигде не написано но из этого можно понять, что будет на конкретной платформе, если исключение не ловить

Igor
17.10.2018
14:41:25
Поясни тогда семантику
хотеть: // a.h class Base { ~Base() = 0; }; не хотеть: // a.cpp Base::~Base() {}

Kitsu
17.10.2018
14:41:27
но выше правильно ответили, что ничего хорошего не будет

Igor
17.10.2018
14:44:15
А зачем и =0, и =defaul
если не делать ~Base() {}, то наследник от Base при уничтожении вызовет несуществующий деструктор, и откроются ворота в адъ

Alexey
17.10.2018
14:45:52
=default ворота не закрывает?

Igor
17.10.2018
14:46:57
ну вот как будто бы да, ворота можно закрыть с помощью =default, потому что по сути именно дефолтную реализацию сейчас и приходится писать руками

Alexey
17.10.2018
14:47:47
А зачем ещё и =0?

Google
Igor
17.10.2018
14:48:12
затем что нужен pure virtual class :)

Alexey
17.10.2018
14:52:27
Сделай protected конструктор

Igor
17.10.2018
14:54:22
да-да, когда-то я приходил с такой идеей на SO) https://stackoverflow.com/questions/33299273/pure-virtual-destructor-vs-protected-constructor-virtual-dtor

Spoonson
17.10.2018
14:54:38
Сделай protected конструктор
из наследника можно будет родителя тогда создать

Igor
17.10.2018
14:55:17
"At a more conceptual level, if you are trying to make a class abstract, then make it abstract. "

Alexander
17.10.2018
14:56:52
из наследника можно будет родителя тогда создать
Строго говоря, ты и чисто виртуальный деструктор для базового из производного вызвать можешь, это C++ :)

Spoonson
17.10.2018
14:58:06
или это к тому что из наследника сломать можно что угодно?

Alexey
17.10.2018
15:00:06
А зачем нужен чисто виртуальный класс, если из виртуального там только деструктор?

Igor
17.10.2018
15:07:17
А зачем нужен чисто виртуальный класс, если из виртуального там только деструктор?
а это уже вопрос дебильности архитектуры ? от балды - в конструкторе регистрируем себя в где-нибудь, в деструкторе вычищаем, и всё это какая-нибудь GameBasicEntity

Kirill
17.10.2018
16:37:53
Зачм нужно '''std: :auto_ptr<T>'''?

Alex Фэils?︙
17.10.2018
16:38:51
не нужно уже, его выкинули на мороз, используй std::unique_ptr

Matwey
17.10.2018
16:39:27
Зачм нужно '''std: :auto_ptr<T>'''?
Это плохая версия std::unique_ptr

unique_ptr это умный указатель

Google
Matwey
17.10.2018
16:39:44
позволяет не забыть освободить выделенную руками память

Alexen
17.10.2018
16:39:49
не плохая, а единственно возможная на тот момент

Matwey
17.10.2018
16:40:16
не плохая, а единственно возможная на тот момент
от того что единственно возможная - не делает её хорошей

Alexen
17.10.2018
16:41:36
но и плохой тоже

она нейтрайльная, да имеет свои недостатки, как и прочие смарт-указатели в С++.

Alex Фэils?︙
17.10.2018
16:46:47
ну, уник-птр пофиксил недостатки auto_ptr'а

Alexen
17.10.2018
16:46:54
и как бы уже без разницы ибо устарел этот тип и удалён

ну, уник-птр пофиксил недостатки auto_ptr'а
и те что касались создание-удаление массивов?

Alex Фэils?︙
17.10.2018
16:47:48
unique_ptr<T[]>

Alex Фэils?︙
17.10.2018
16:52:08
Ruslan
17.10.2018
16:52:53
наш человек!
Да, кстати, войс в про.асм можешь выписать?

Ruslan
17.10.2018
16:53:30
Спасибо

Alexen
17.10.2018
16:59:27
unique_ptr<T[]>
и таки инициализацию массива не внесли

Alex Фэils?︙
17.10.2018
16:59:50
давай закинем DR/пропосал на stdcpp.ru

Alexen
17.10.2018
17:00:22
я пока не знаю как унифицированно это сделать

Evgeniy
17.10.2018
17:01:20
unique_ptr<T[]>
но зачем?

Alexen
17.10.2018
17:01:29
можно initialized_list

Alex Фэils?︙
17.10.2018
17:04:39
но зачем?
дуболомная замена new T[] ж)

Google
Alexen
17.10.2018
17:05:12
в целом да

Evgeniy
17.10.2018
17:09:10
Kirill
17.10.2018
17:09:51
Какой вы компилятор используете?

Alexander
17.10.2018
17:11:36
Alex
17.10.2018
17:11:57
clang

Alexen
17.10.2018
17:14:12
clang, gcc

Ilia
17.10.2018
17:15:47
Я дебажу профайлер :)
Лучше профайлить дебагер, чем дебажить профайлер.

Kitsu
17.10.2018
17:17:40
gcc,clang,msvc,icc
о, всегда было любопытно как (качественно) работает icc можешь в двух словах рассказать?

Ruslan
17.10.2018
17:18:43
Лучше профайлить дебагер, чем дебажить профайлер.
Вот как закончу, так и сразу переключусь. Мне там страсть как надо нормальные pretty printer's сделать

Kitsu
17.10.2018
17:19:10
лучше векторизует ?
даже если шланги/гцц со всей пачкой параметров?

Alexander
17.10.2018
17:19:41
даже если шланги/гцц со всей пачкой параметров?
ага. но разница с gcc небольшая. gcc местами даже шустрее

но gcc/icc лучше шланга/msvc

Kitsu
17.10.2018
17:20:12
ага. но разница с gcc небольшая. gcc местами даже шустрее
шустрее работает или код более оптимизированный?

Ruslan
17.10.2018
17:20:27
Все не так однозначно

Alexander
17.10.2018
17:20:27
Kitsu
17.10.2018
17:20:32
но gcc/icc лучше шланга/msvc
угу, тоже для себя отмечал

Alexander
17.10.2018
17:21:05
кого интресует - ищите бенчмарки ч чате. я кидал

Google
Ruslan
17.10.2018
17:21:12
Интеловский компилятор без интеловских либ, тулзов и ПРОЦА мало пользы несет :)

А вот все в куче если, то уже есть смысл

Alexander
17.10.2018
17:21:31
Ruslan
17.10.2018
17:21:47
Ничего не естественно. Кому-то критично под АРМ

или под PowerPC

Страница 2444 из 2477