#include <iostream>
#define CONCATENATE t; Box(); t
#define END ;
using namespace std;
class Box
{
public:
Box(){ }
Box(string _txt){ }
Box operator|(const Box& b)
{
cout<<"hi from op |"<<endl;
Box box;
return box;
}
void operator+()
{
}
public:
string str;
};
int main()
{
Box t;
Box tt;
CONCATENATE //this works
CONCATENATE CONCATENATE //this doesn't work because cant understand tt object
END
}
如果我给CONCATENATE CONCATENATE编译器说分号缺少多数正确但编译器应该理解t;框(); TT;框();因为在分析阶段删除空格。好奇的类对象连接C++
如果我编写CONCATENATE END编译器执行那个并且是正确的 t;框();吨; 如果我编写CONCATENATE CONCATENATE END编译器执行那个并且不正确 t;框(); t t;框();吨;因为了解分号丢失,但在这种情况下,我希望编译器明白应该执行对象tt并忽略空格。
我该怎么做那些家伙?
更新
预处理器连接了字符串到TT;目的?
int main(){ Box t; Box tt; //this work (is such 2 times CONCATENATE macro) t; Box(); tt; Box(); t END //this doesnt work CONCATENATE CONCATENATE END }
你究竟想在这里实现什么? [这几乎肯定是错误的做法。](http://meta.stackexchange.com/q/66377/242291) – BoBTFish
检查我的update.thanks! –
@ jay_gr13你的更新仍不能很好地解释你对这个构造的用例。对我来说毫无意义。 –