次のような一連のフラグとクラスがあるとします。
/// <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++11enum class
で厳密に型指定された方法でこれをサポートすることは可能ですか? または、型指定されていない列挙型に戻す必要がありますか?
static_cast
(呼び出し元が基になる型に戻ったり戻ったりできることは知っていstatic_cast
ますが、呼び出し元にそれをさせたくありません)