用定义替换std :: cout

Pan*_*ver -3 c++ cout c-preprocessor

我试图强制我的编译std::cout器用我的代码替换我的代码中的任何出现.但是当我写这样的东西时:

#define std::cout (*some code*)

我的编译器吐在我的脸上.有没有办法做到这一点 ?

编辑:

这是代码片段:

# define std::cout (std_out << std::cout)

(std_out是我之前打开的文件)

和std :: out出现的行上的错误

全球范围没有"cout"

Jam*_*nze 5

您定义标识符,而不是任意表达式. std是一个标识符; 您的定义将导致编译器来代替标识的每个实例std有::cout (*some code*).所以编译器不喜欢它并不奇怪:std::cout << toto成为::cout (*some code*)::cout << toto和std::vector成为::cout (*some code*)::vector.

如果你要解释你实际想要实现的目标,我们可能会帮助你做得更好.