Определите одну битовую маску для просмотра и другую битовую маску для публикации, с одним битом для публики и друзей (закрытый просто означает, что оба бита установлены в 0).Бит, установленный на 1, разрешает доступ, а бит, установленный на 0, запрещает доступ.
AND
битовая маска "post" с битовой маской "view", чтобы гарантировать, что все биты, которые очищены вБитовая маска "view" также очищается в битовой маске "post".
В чем-то вроде C или C ++ это будет выглядеть примерно так:
unsigned view;
unsigned post;
enum { friends = 1, public = 2 };
view = friends;
post = friends | public; // create an invalid combination
post &= view; // correct the invalid combination;