Code Bye

关于宏和类的成员函数的疑问

本人在Logging类的头文件里定义了如下宏
#define LOG_INFO(msg) ::solo::base::Logging::writeToLogging(“#msg”, LOG_INFO)
这里的writeToLogging是类内的一个静态成员函数,供日志输入。
下面是主函数
#include <solo/base/Logging.h>
int main()
{
LOG_INFO(“ADA”);
}
编译提示 本人这个LOG_INFO未声明。
但是本人改掉LOG_INFO 的定义,随便改成一个很简单的定义 例如 (msg > 1 ? 1 : msg) 编译器又不会提示有错误
本人在想是不是原因是后面宏定义的是类静态成员函数的问题。
希望的到解答, 不胜感激。
解决方案

5

宏展开后是
::solo::base::Logging::writeToLogging("#msg", LOG_INFO);

这里的LOG_INFO是什么?

5

类的私有 enum 需要加上 namespace and classname

5

引用:

编译不通过的话本人要怎么才能查看宏展开的结果呢

VS   /P
G++ -E

10

引用:

是类的一个私有enum

LOG_INFO在对应的类里面出现,应该没问题
类外的话,得加上 类作用域 而且还得是public的.


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于宏和类的成员函数的疑问