代码之家  ›  专栏  ›  技术社区  ›  LeMoussel

C++为什么要注释:参见引用类模板实例化正在编译[复制]

  •  1
  • LeMoussel  · 技术社区  · 6 年前

    在.hpp文件中,我有一个模板函数,它是类的成员。

    class BLog
    {
      public:
        enum { LOG_ERROR, LOG_WARN, LOG_STATUS, LOG_INFO, LOG_NOTICE, LOG_DEBUG };
    
        template <typename... Args>
        void appLog(int prio, const char *fmt, Args const &... args);
        template <typename... Args>
        void appLogError(const char *fmt, Args const &... args) { this->appLog(LOG_ERROR, fmt, args...);  } 
    }
    

    打电话的时候,

    int main() 
    {
        BLog myLog();
    
        myLog.appLog(BLog::LOG_ERROR, "%s message", "Test");
    }
    

    我得到的警告是

    myLog::appLog(int,常量字符*,常量字符(&)[5] )'存在

    无法找出传递参数的正确语法。。。

    对于建议的答案,使用visualstudio,我总是用 W4 旗帜。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Evg    6 年前
    1. BLog myLog(); 是函数声明。使用 BLog myLog{}; .

    2. myLog::LOG_ERROR BLog::LOG_ERROR .