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 ответов

20 просмотров

Если назвать без _, пользователь сможет написать, например, #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> это довольно неудобно

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта