简而言之,问题在于名称解析。
说明:
我正在枚举错误代码,并使用它们来派生/实现index()
类,但是将实现包装到2个单独的命名空间中时会出现问题,一个用于枚举,一个用于代码实现。
这不容易解释,所以我制作了一个最低限度的可编译代码,您可以将其复制/粘贴到编辑器中并尝试进行编译。
我在代码上方加上了(NOTE :)注释,这是我进行代码编译时要做的事情,但是我需要单独的命名空间,如下面的代码所示,但是名称解析不起作用,并且我不知道如何解决。
std::error_condition
答案 0 :(得分:0)
虽然我个人建议您将枚举与类别放在相同的名称空间中,但关键问题是make_error_condition
和make_error_code
函数必须与枚举位于相同的名称空间中。 std::error_code
和std::error_condition
构造函数都执行这两个函数的ADL查找。
inline std::error_condition make_error_condition(enums::Condition ec) noexcept
inline std::error_code make_error_code(enums::Error code) noexcept