【问题标题】:Severity level in BOOST_LOG_SEVBOOST_LOG_SEV 中的严重级别
【发布时间】:2015-07-31 09:23:56
【问题描述】:

为什么这个代码行可以正常工作:

BOOST_LOG_SEV(lg,debug) << "tst message";

虽然这个在编译时失败:

BOOST_LOG_SEV(lg,trivial::severity_level::debug) << "tst message";

失败信息:

Error   20  error C2653: 'trivial' : is not a class or namespace name

我想两者 - debugtrivial::severity_level::debug 是相同的。如果我在 debug 上的 Visual Studio 中按 F12,它会与 trivial::severity_level::debug 中的 trivial.hpp 完全相同

【问题讨论】:

    标签: c++ visual-c++ boost metaprogramming


    【解决方案1】:

    看起来您使用了命名空间boost::log::trivial。 在第二种情况下,您应该指定 boost::log::trivial::debug,即debug 的完整路径。

    请注意,对于标准 C++03 代码,您不应该编写 severity_level,因为它是枚举,但从 C++11 开始,您可以根据需要使用 boost::log::trivial::severity_level::debug

    【讨论】:

    • 但是 'BOOST_LOG_SEV(lg,boost::log::trivial::severity_level::debug)' 现在可以正常工作了。为什么我应该跳过“severity_level”?
    猜你喜欢
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2015-08-19
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    相关资源
    最近更新 更多