¿Cómo se utiliza una clase enum como un conjunto de indicadores?
Digamos que tengo un conjunto de banderas y una clase como esta:
/// <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 */
}
y quiero que la persona que llama pueda seleccionar más de una opción:
FindFiles handle(Append(basicRootPath, L"*"),
FindFilesOptions::RecursiveSearch | FindFilesOptions::IncludeDotDirectories);
¿Es posible admitir esto de una manera muy tipográfica con C ++ 11?enum class
¿O tengo que volver a las enumeraciones sin tipo?
(Sé que la persona que llama podríastatic_cast
al tipo subyacente ystatic_cast
atrás, pero no quiero que la persona que llama tenga que hacer eso)