cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

Добавить неймспесы для макросов #327

Open apolukhin opened 3 years ago

apolukhin commented 3 years ago

Перенос предложения: голоса +7, -2 Автор идеи: Fihtangolz

Предлагаю ввести ключевое слово для препроцнссора.

usingonly some.hpp, some.cpp ...

Ограничивает макросы которые будут действовать в данной единице компиляции.

Вообщем идея сырая, вдруг кто придумает как сделать лучше.

Причины:

Можно не опасаться перекрытия макросами и писать чистый код, к примеру думаю для stl актуально как и для других библиотек

Думаю будет актуально для модулей(а может не будет)

Возможность для отладки собрать все в одной точке зависимости

apolukhin commented 3 years ago

Саша Зайцев, 20 июля 2018, 0:36 Лично я не совсем понял, что предалагется в данной идее. Можно подробнее?

neondev9, 30 июля 2018, 14:58 Макросы не всем нравятся и в современном С++ они попросту не нужны. То, что макросы плюют на пространства имён - сильно мешает и раздражает.

Хотелось бы иметь возможность включать в свой код сторонний код, но не включать при этом макросы и не засорять глобальное пространство имён.

WPMGPRoSToTeMa, 1 августа 2018, 0:48 neondev9, я бы не сказал, что не нужны, применения есть и боюсь, что не все закрываются рефлекшенем и constexpr!.

Fihtangolz, 6 августа 2018, 6:17 neondev9, не все проблемы решаются без макросов, к примеру нет сегодня возможностей делать cod injection, есть предложения сатера, но оно еще не работает. Нельзя просто так взять и подменить что то в тексте программы, опять же потому что нет к примеру constexpr блоков, но даже они не позволяют работать со многими штуками что позволяют макросы. Есть легаси, с легаси надо работать, так как его много макросы еще долго будут в языке, я даже думаю что еще лет 20 точно. Так что лучше сейчас дать возможность решать проблему которая уже давно сочится и даже в стандартной библиотеке

yndx-antoshkka, 6 августа 2018, 11:49 Fihtangolz, лучше решать имеющуюся проблему правильно, чем быстро. Поэтому комитет врядли согласится распылять свои силы на макросы, когда уже понемногу ведётся работа над рефлексией и кодогенерацией.

Fihtangolz, 11 августа 2018, 4:06 yndx-antoshkka, ну я не знаю где смотреть что и как и где в комитете, для меня это загадочная структура, я видел прупозлы и на этом все. К вопросу о том, будет ли лучше добавить новых фитч и ждать пока макросы отклеятся, а как я понял из переписки в телеге это гдет еще лет 8 тока до введения фитч, потом еще лет 5 пока перепишут буст, qt и все переползут и все это время макросы будут работать в языке ровно так как работают. Спорный момент о том что лучше, но комитету думаю видней