У меня есть следующая проблема:C++ препроцессор и перегружающие вопросы
Давайте рассмотрим мы
#define SET callMe
#define COLUMN(x) #x
и в нашем главном блоке нашей программы мы имеем следующую строку: SET(COLUMN(price)="hi");
который после препроцессора бега переведен на:
#callMe("price"="hi");
Я нужна функция callMe
подпись быть callMe(string str)
, поэтому нам нужно сделать что-то, чтобы сделать "price"="hi"
до "price=hi"
и позволить функции callMe
справиться с остальной частью проблемы. Последнее, что нужно сказать, это то, что вся эта программа, которую я описываю, является частью класса Table.
Единственный вариант у меня есть перегрузка оператора =
так "price"="hi"
переводится на один хотел, но я не могу получить то, что я должен перегружать, потому что я сначала подумал, что делает такую перегрузку
#std::string operator=(std::string str)
в качестве члена функция класса Table, но, похоже, я не могу понять это правильно.
Любые подсказки, как я могу достичь желаемых операций?
Почему вы используете препроцессор для этого? Было бы намного лучше создать набор классов с перегруженными операторами, которые создали SQL-выражение как AST. – Omnifarious