假设我有一组标志和一个像这样的类:
/// <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 */
}
我希望来电者能够选择多个选项:
FindFiles handle(Append(basicRootPath, L"*"),
FindFilesOptions::RecursiveSearch | FindFilesOptions::IncludeDotDirectories);
是否可以使用 C++11 以强类型的方式支持这一点enum class
,还是我必须恢复为无类型的枚举?
(我知道调用者可以static_cast
返回底层类型static_cast
,但我不希望调用者必须这样做)