我想知道,有的人比我多了很多知識可能就會知道答案:如何預處理更在C/C++
爲什麼不是C(在我的情況下,其對C++)預處理器更完整?
我的意思是爲什麼我們不能用C++作爲預處理語言?它將使我們能夠做這麼多關於類,生成動態代碼等等
理想我想調用C++函數就像一個預處理宏,用一個具體的例子,我喜歡做的事情一樣:
#void generateVariable(std::string type, std::string name) {
# if (name[0] == 'p')
# cout << "protected:" << endl << type << " " << name << ";" << endl;
# if (name[0] == 'm')
# cout << "public:" << endl << type << " " << name << ";" << endl;
# std::string prefix = name;
# prefix.erase(2, npos);
# name.erase(0,2);
# name[0] = toupper(name[0]);
# cout << "public:" << endl << type << "get" << name << "() const { return " << prefix+name << "; }" << endl;
#}
,這樣我可以打電話
class A {
generateVariable(static const int, p_age)
}
而且,它還將產生
class A {
protected:
static const int p_age;
public:
static const int getAge() const { return p_age; }
}
實際上有沒有辦法做這種事情,而不是用腳本語言解析整個文件並重寫它?
的_'C++ preprocessor'_由這些意義是模板元編程!你究竟在幹什麼? –
瞭解模板元編程。這與你想要做什麼有關。 – kec
因爲它不會是C++,它會是Lisp。 –