相关疑难解决方法(0)

如何使用枚举类作为一组标志?

假设我有一组标志和类似这样的类:

/// <summary>Options controlling a search for files.</summary>
enum class FindFilesOptions : unsigned char
{
    LocalSearch = 0,
    RecursiveSearch = 1,
    IncludeDotDirectories = 2
};

class FindFiles : boost::noncopyable
{
    /* omitted */
public:
    FindFiles(std::wstring const& pattern, FindFilesOptions options);
    /* omitted */
}
Run Code Online (Sandbox Code Playgroud)

我希望调用者能够选择多个选项:

FindFiles handle(Append(basicRootPath, L"*"),
    FindFilesOptions::RecursiveSearch | FindFilesOptions::IncludeDotDirectories);
Run Code Online (Sandbox Code Playgroud)

是否可以使用C++ 11以强类型方式支持它enum class,或者我是否必须恢复为无类型枚举?

(我知道调用者可以static_cast使用底层类型并static_cast返回,但我不希望调用者必须这样做)

c++ c++11

12
推荐指数
1
解决办法
2866
查看次数

标签 统计

c++ ×1

c++11 ×1