From 331f833f3525efb9d7fa7fd6b624a6f4e3c1095d Mon Sep 17 00:00:00 2001 From: myun2 Date: Thu, 7 Jun 2012 02:38:28 +0900 Subject: [PATCH] adapter/operator/bit/not.hpp Add. --- roast/include/roast/adapter/operator/bit/not.hpp | 47 ++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 roast/include/roast/adapter/operator/bit/not.hpp diff --git a/roast/include/roast/adapter/operator/bit/not.hpp b/roast/include/roast/adapter/operator/bit/not.hpp new file mode 100644 index 00000000..158cd3f4 --- /dev/null +++ b/roast/include/roast/adapter/operator/bit/not.hpp @@ -0,0 +1,47 @@ +// Roast+ License + +/* +*/ +#ifndef __SFJP_ROAST__adapter__operator__bit__not_HPP__ +#define __SFJP_ROAST__adapter__operator__bit__not_HPP__ + +namespace roast +{ + namespace adapter + { + ///////////////////////////////////////////////////////////////////////// + + template + class bit_not_adapter + { + protected: + virtual _ValueType bit_not() const =0; + + public: + _ValueType operator ~() const { + return bit_not(); + } + }; + + ///////////////////////////////////////////////////////////////////////// + + template + class value_bit_not_adapter : public bit_not_adapter<_ValueType> + { + private: + _ValueType& m_value; + protected: + _ValueType bit_not() const { + return ~m_value; + } + public: + value_bit_not_adapter(_ValueType& value_ref) : m_value(value_ref) {} + }; + + ///////////////////////////////////////////////////////////////////////// + } + + using namespace adapter; +} + +#endif//__SFJP_ROAST__adapter__operator__bit__not_HPP__ -- 2.11.0