170 похожих чатов

Зачем в msvc в стандартной библиотеке все начинается с '_'? template

<class _Ty>
class _Ref_count : public _Ref_count_base { // handle reference counting for pointer without deleter
public:
explicit _Ref_count(_Ty* _Px) : _Ref_count_base(), _Ptr(_Px) {}

private:
virtual void _Destroy() noexcept override { // destroy managed resource
delete _Ptr;
}

virtual void _Delete_this() noexcept override { // destroy self
delete this;
}

_Ty* _Ptr;
};

13 ответов

24 просмотра

Если назвать без _, пользователь сможет написать, например, #define Destroy 42 перед инклудом библиотеки и всё сломается

Тамар-Кусь Автор вопроса

кто в здравом уме это будет делать?

Тамар-Кусь Автор вопроса

int_type у меня #define int_type int и все

Тамар Кусь
кто в здравом уме это будет делать?

ну например Qtшним #define slot можно сломать python

Тамар-Кусь Автор вопроса
Макс Воробьев
ну например Qtшним #define slot можно сломать pyth...

Мне однажды пришлось переименовывать метод emit на invoke в библиотеке интеграции с qt для.

Тамар Кусь
int_type у меня #define int_type int и все

У библиотеки есть интерфейсная часть (предоставление которой заявляется Стандартом и использовать которую в качестве макроимен он же запрещает), а также произвольные имена имплементации, под которые Стандартом отведены идентификаторы, начинающиеся с андерскора, за которым следует прописная буква, либо содержащие последовательность из андерскоров (либо начинающиеся с андерскора - в глобальной области видимости). Edit: На всякий случай, правила для имен пользовательских литеральных суффиксов содержат исключение.

Ramil Rizvanov
Что за магия числа 42?

Ответ на главный вопрос

Ramil Rizvanov
Что за магия числа 42?

Это особенное число. Почему оно особенное хотите вы спросить? Особенным могло бы быть любое другое, но тогда бы вы спрашивали о нём. * Вольная цитата Артура Кларкс.

Sergey Anisimov
У библиотеки есть интерфейсная часть (предоставлен...

юзер дефайнед литералы _<name> это довольно неудобно

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта