¿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)

Respuestas a la pregunta(5)

Su respuesta a la pregunta