假设我有一组标志和类似这样的类:
/// <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返回,但我不希望调用者必须这样做)