Constantine
Рантайм проверки у меня уже есть
Constantine
В дебаге
Aidar
Там проверки на уровне каста типов
Constantine
Мне не нужны рантайм проверки, я их умею писать руками
Aidar
В расширениях джавы такое тоже есть
Aidar
Тоже в рантайме
Ivan
Пацаны, когда говорят рантайм С++, имеют ввиду что? Обёртку над исключениями? Что си плюс плюс ещё что-то генерит? Отличается чем-то от рантайма си?
Aidar
У тебя как минимум будет проверка при создании этого указателя
Aidar
Это тоже рантайм
Constantine
Нет, оператор нью не может вернуть налл
Alex
Alex
Constantine
Alex
FailsBot
Search results for "nothrow"
1. std::nothrow
2. std::is_nothrow_swappable
3. std::is_nothrow_assignable
4. std::is_nothrow_destructible
5. std::is_nothrow_constructible
6. std::is_nothrow_copy_assignable
7. std::is_nothrow_move_assignable
8. std::is_nothrow_copy_constructible
9. std::is_nothrow_move_constructible
10. std::is_nothrow_default_constructible
11. std::experimental::is_nothrow_assignable_v
12. std::experimental::is_nothrow_destructible_v
13. std::experimental::is_nothrow_constructible_v
14. std::experimental::is_nothrow_copy_assignable_v
15. std::experimental::is_nothrow_move_assignable_v
16. std::experimental::is_nothrow_copy_constructible_v
17. std::experimental::is_nothrow_move_constructible_v
18. std::experimental::is_nothrow_default_constructible_v
19. throw expression
Ivan
Type_info несёт какой-то оверхед?
Alex
Как?
int *a = new(std::nothrow) int[100500];
Aidar
Там эксепшн упадет это фактически же не возврат
Aidar
А
Aidar
Мм
Aidar
Не знал
Constantine
Ладно, это не тот нью
Alex
Во время pre-C++98 new без этой шняги возвращал NULL при неудаче
Constantine
Такой нью мне не нужен
Constantine
Мой нью будет с экспешеном
Alex
Ага)
Aidar
Че-то тема съехала
Ivan
Ага)
Чувак, а можно type info отключить как exception'ы?
Constantine
У меня либо есть формальное доказательство квалификатора
Constantine
Возможно с рантайм проверкой
Aidar
Данные откуда берутся
Constantine
И исключением
Constantine
Либо нет квалификатора
Constantine
Например, под ифом у меня есть формальное доказательство квалификатора
Aidar
Ты можешь квалификатор заменить типами с кастами
Aidar
Сам квалификатор не нужен
Ivan
Валяй!
Constantine
Не могу
Aidar
Можешь
Constantine
Могу уничтожив тип от слова совсем
Aidar
Зачем
Constantine
Потому что я не могу принять в функцию юник птр и не синтезировать делитер
Aidar
Что ты не можешь сделать с типами
Constantine
Осознай это
Ivan
Alex
А. С бник птр есть такая проблем
Aidar
Constantine
Даже если у меня есть доказательство, что я никогда не вызову делит
Aidar
Вот как раз другой тип
Alex
Constantine
Тогда я обязан потерять информацию о типе
Aidar
О каком
Ivan
Aidar
Какую информацию
Constantine
Я получаю указатель типа юник птр
Dmitry
божеж ты мой сколько опять нафлудили
Aidar
Это уже неправильно
Aidar
У тебя вызовется деструктор
Constantine
Считай это инпутом
Aidar
Дальше что
Dmitry
@webreh может покажешь хотя бы приблизительно что ты хочешь на сниппете в melpon например?
Constantine
Я получаю указатель который обязан удалить либо вернуть с пруфами
Aidar
Удалить указатель?
Constantine
Как мне написать такой код на плюсах?
Ivan
Кинь ссылку на ideone.com
Constantine
Ну если параметр функции юник птр семантически одно из двух
Aidar
Тоесть ты либо инвалидный юник принтер возвращаешь либо тот же самый
Aidar
Дальше что
Constantine
Либо я его запишу, либо я его удалю
Aidar
Ты должен что-то вернуть
Constantine
О чем ты вообще
Aidar
Кинь код короче
Constantine
Я же кидал
Aidar
Там обрывки
Aidar
С километрами фраз
Constantine
Я хочу написать функцию, которая примет и вернет юник птр на инкомплит тайп