improved shift-operator-checks and added unary-!
added CMakeLists.txt