나는 다음과 같은 문제가 있습니다C++ 전처리 및 과부하 문제
하는의 우리가
#define SET callMe
#define COLUMN(x) #x
이 우리 프로그램의 우리의 주요 블록에 우리가 다음 줄이 생각해 보자 :
SET(COLUMN(price)="hi");
을하는 전처리 실행 후
#callMe("price"="hi");
내가,874가 될 기능을
callMe
서명을 필요로 번역그래서 우리는
"price"="hi"
을
"price=hi"
으로 만들고 무언가를 만들어서
callMe
이 나머지 문제를 처리하도록합니다. 마지막으로 언급 한 것은이 모든 프로그램이 Table 클래스의 일부라는 것입니다.
내가 가진 유일한 옵션은 연산자를 오버로드입니다 =
때문에 원하는 하나에 번역 "price"="hi"
,하지만 난 내가 처음 생각했기 때문에 내가 과부하해야 것을 얻을 수없는 구성원으로 다음과 같은 과부하
#std::string operator=(std::string str)
을하고 함수는 테이블 클래스의하지만 제대로 궤도에 그것을 얻을 수없는 것 같습니다.
내가 원하는 작업을 수행 할 수있는 단서가 있습니까?
왜 이런 이유로 전처리기를 사용하고 있습니까? AST로 SQL 표현식을 구축 한 오버로드 된 연산자로 클래스 세트를 만드는 것이 훨씬 더 낫습니다. – Omnifarious