Bitwise operations in enumerators

I have the requirement to add some additional data in an existing enumeration code based on a scenario. As shown, I have the following code:

#include 

enumeration Permissions {Readable = 0x4, Writable = 0x2, Executable = 0x1};

int main ()
{
Perms permissions = static_cast(Executable | static_cast(29));
std :: cout << perms << std :: endl;
perms & = ~ Permissions :: Executable;
std :: cout << perms << std :: endl;
}

At first I am trying to add the data and then extract the same, but I receive a compilation error:

$ c ++ -std = c ++ 11 try67.cpp
try67.cpp: in the function & # 39; int main () & # 39 ;:
try67.cpp: 9: 7: error: invalid conversion of & # 39; int & # 39; a & # 39; Permissions & # 39; [-fpermissive]
 perms & = ~ Permissions :: Executable;

Is the approach correct and how can we eliminate the compilation error?