Цитата:
Сообщение от
Logger
не подойдет.
Тернарный оператор это выражение.
X++:
#localmacro.tern
%1 ? any2any(%1) : any2any(%2)
#endmacro
info(strFmt("%1", (#tern(a, b)))); // не выдает
но я сам так не делал.
Это можно объединить в один макрос
X++:
static void tern_macro_test(Args _args)
{
#localmacro.tern
#if.empty(%4)
%1 ? %2 : %3
#endif
#ifnot.empty(%4)
if (%2)
{
%1 = %3;
}
else
{
%1 = %4;
}
#endif
#endmacro
anytype value, firstValue, secondValue;
boolean useFirst;
;
useFirst = true;
firstValue = 1;
secondValue = 2;
info(strfmt("%1", #tern(useFirst, firstValue, secondValue)));
useFirst = false;
#tern(value, useFirst, firstValue, secondValue)
info(strfmt("%1", value));
}