Здравствуйте, Sheridan, Вы писали:
S>Ругается на # во втором difine'е: error: '#' is not followed by a macro parameter
Нельзя директивы препроцессора вставлять в макросы.
S>Совсем никак не обойти?
Расскажи, что тебе нужно. Возможно, что есть радикально иной способ решить задачу.
Приветствую, Кодт, вы писали:
К> Расскажи, что тебе нужно. Возможно, что есть радикально иной способ решить задачу.
Есть конечно, хотелось просто через дефайны, в компилетайме. Буду значит в рантайме нужное вытаскивать...
Грубо говоря мне надо определить — объявлена ли какаятотам переменная или нет.
Приветствую, Chorkov, вы писали:
C> Если можно использовать ms-specifik (__if_exists), то решение есть:
Qt, кроссплатформенно. Пишу под линухом в qt-creator'е.
Приветствую, Кодт, вы писали:
К> Расскажи, зачем тебе надо определить, объявлена ли какая-то-там переменная?
Чтобы выяснить — использовать ее или надо создавать новый объект.
Хотелось бы чтототипа такого:
Вобщем вот код. Если я добавлю FIELD(get_subscribed_forums, forumgroups, sortorder); в описание, то прокатит вариант с
#define ORDER_BY(_qr,_tbl,_fld) _qr->addOrder(QUERY_FIELD(_qr,_tbl,_fld));
Иначе надо
#define ORDER_BY(_qr,_tbl,_fld) _qr->addOrder(new _nsp_::CDBMQueryField(TABLE_FIELD(_tbl,_fld), _qr));
Приветствую, dcb-BanDos, вы писали:
BD> №!%;:%(*?№"(№К*К:% BD> c++ — это язык, придуманный не для выдумывания своего языка в продакшен коде
Извините, я забыл вас спросить о том, как мне удеобнее достичь желаемого результата.
По сабжу: уже не надо, по другому сделал. даже проще получилось.
Здравствуйте, Sheridan, Вы писали:
S>Хотелось бы чтототипа такого:
А зачем обязательно размещать все эти переменные на стеке?
И что, если ты одно и то же поле базы данных дважды выцарапаешь?
Дубликат в списке select — пускай вызовет ошибку компиляции, повторное объявление переменной.
То же самое поле в составе where или join — пускай будет новой переменной, и вообще не факт, что оно должно быть переменной.
Перед тобой же не стоит задача оптимально транслировать SQL в примитивные запросы? Это за тебя сервер сделает.
Кстати, я бы ещё подумал насчёт того, чтобы выражать SQL-запрос не пачкой стейтментов, а одним большим выражением.
Как это выражение сконструируется — шаблонами ли, expression templates ли — большой разницы нет.