当前位置:  开发笔记 > 编程语言 > 正文

错误记录C++预处理器宏__LINE __,__ FUNCTION__

如何解决《错误记录C++预处理器宏__LINE__,__FUNCTION__》经验,为你挑选了1个好方法。



1> dirkgently..:
myLogClass << "Line No: " << __LINE__ ...

你的operator <<链接将无法正常工作,因为它返回了一个bool.

bool myLogClass::operator << (const char * input)

通常按如下方式定义流插入:

std::ostream& myLogClass::operator << (std::ostream& o, const char * input) {
    // do something
    return o;
}

做这个:

#define log(o, s) o << "Line No: " << __LINE__ << \
                   " Function: " << __FUNCTION__ << \
                   " Error: " << s // note I leave ; out

此外,您可以将宏包装在do-while循环中:

#define log(o, s) do { o << "Line No: " << __LINE__ << \
                   " Function: " << __FUNCTION__ << \
                   " Error: " << s; \ 
                  } while(0) // here, I leave ; out

然后你可以高兴地写:

 myLogClass myLogger; // do this

 // use it
log(myLogger, "This is my error to be logged"); // note the ;


@thinkcube:谢谢!自我注意:永远不要从问题中复制粘贴.总是编译.
推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有