Здравствуйте.
Каким макросом можно прекратить использование форвардов для неродных пабликов?
Вид для печати
Здравствуйте.
Каким макросом можно прекратить использование форвардов для неродных пабликов?
Скорее всего вы имели ввиду это:
Ну или еще распространенный вариант:PHP код:
#define publics%0(%1) forward %0(%1); publi c%0(%1)
PHP код:
#define void%0(%1) forward %0(%1); public %0(%1)
В "publics" тоже мало здравого смысла - вернее, его там совсем нет: макрос для объявления _одного_ паблика называется "паблики" - wtf?
Для сравнения, на sa-mp.com и других зарубежных форумах аналогичный макрос называют "fpub" или "fpublic" - вполне самодостаточные названия, из которых сразу ясна суть макроса. А govno-info и им подобные сайты с их быдлокодерскими практиками следует считать ни чем иным, как деструктивной сектой, и уж точно не следовать их примерам.
Могу предложить такие варианты (названия):
Из Lua:
Из Golang:PHP код:
#define function%0(%1) \
forward %0(%1); public%0(%1)
PHP код:
#define func%0(%1) \
forward %0(%1); public%0(%1)
Есть много махинаций с макросами. Вы можете сделать один макрос, который будет отсортировывать static, stock, public функции, либо же создать подобие ООП (как делают многие).
Вариант из Rust:
PHP код:
#define fn%0(%1) forward%0(%1);public%0(%1)
Гораздо эффективнее принять один одобренный большинством стандарт, иначе закончится тем, что каждый будет кодить на своём диалекте.
Правда пугает то, что сейчас многие авторы выкладываемых работ на Pawn из-за принципов (или религии?) в упор не способны принять чей-то совет и переоформить свою работу в соответствии с рекомендуемыми стандартами.
Да, я также думал о стандарте, и вы совершенно правы.
Вот ещё один способ:
Во многих IDE (например, Sublime Text) есть функции создания макросов, которые помогают писать код без создания какого-либо стороннего макроса в программе (исходниках программы), соответственно, не уходя от стандарта.
Тогда можно сделать как в Python
Или более си-подобнееPHP код:
#define def:%0(%1) \
forward %0(%1); public %0(%1)
Но в последнее время я избегаю создание таких макросов. Чего и вам желаю. Более понятно писать полностью, не так ли?PHP код:
#define int%0(%1) \
forward %0(%1); public %0(%1)
Я дал пример для общего понятия работы макроса,я не использую данные сокращения,пишу стандартно как и задумывалось.
ТС спросил,я привел примеры,на данных примерах он вполне может понять как это работает,далее он вполне сможет переписать под "одобренный большинством стандарт"!
Раздули из мухи слона.
Используй forward и проблем не возникнет с пониманием как у тебя, так и у других.
При чем тут оправдания? Че мля за упертость то такая? ТС спросил,я подсказал варианты,да и как сам сказал :
так что какие проблемы? Я еще понимаю еслиб у ТС вопрос стоял типа: "Как правильно назвать макрос?"..
++++
Отсутствие стандарта ещё не отменяет недостатков (а именно абсурдных названий) в макросах с г-и. Интерфейс зачастую даже важнее, чем реализация.
Т.е. вы хотите сказать, что если ТС не попросил этого в явном виде, то я не имею права критиковать ваш подход?
Вот с таким мнением трудно не согласиться, ведь все эти макросы, будь то fpub или говнокодерские void/publics, нужны только для тех, кто не умеет печатать быстрее, чем по 1 символу в секунду.
Btw, можно обойтись и без макросов, и без forward.
Такой подход удобен тем, что можно просто один раз ввести строку с заголовком функции, а затем просто скопировать её без точки с запятой. Но следует иметь в виду, что символ "@" тоже попадёт в название функции. Также знаки "_" в начале названия не обязательны, я их обычно ставлю, чтобы было легче заметить символ "@" и понять, что это public-функция.PHP код:
@__TimerFunc(); // вместо "forward TimerFunc();"
@__TimerFunc() // вместо "public TimerFunc()"
{
// ...
}
Постоянно проскакивает г-и.. а код увидел на п-в.. печаль :с
Я понимаю что ты тут пытаешься доказать,но проблема в том что я и не думал о "не абсурдных" названиях,т.к. я таким методом не пользуюсь,и просто написал несколько примеров "работы" макроса,а о ньюансах как раз мог рассказать ты,только в форме типа:"Желательно использовать такие-то,такие-то названия макросов,так как они более приемлемы",и говорить это к обращению к ТС,попутно еще бы рассказывая + и - тех или иных названий,а не расписывать о том что что-то взято с г-и,на данный(г-и) форум по моему вообще абсурдно заходить,инфы-0,зато рекламы.. да всякие сайты с проститутками вылазят.... .
Подход к коду или к ответу?Хотя как я уже писал я подобные способы не использую,по этому и не знаю некоторых мелочей,но суть макроса я написал правильно,и сам макрос будет работать,об остальном могут дополнить более знающие люди,вроде тебя.