+++ /dev/null
-// Roast+ License
-
-/*
-*/
-#ifndef __SFJP_ROAST__adapter__operator__logical__and_HPP__
-#define __SFJP_ROAST__adapter__operator__logical__and_HPP__
-
-namespace roast
-{
- namespace adapter
- {
- /////////////////////////////////////////////////////////////////////////
-
- template <typename _Facade, typename _ValueType>
- class logical_and_adapter
- {
- protected:
- virtual void logical_and(const _ValueType& logical_and_value)=0;
-
- public:
- _Facade operator &&(const _ValueType& logical_and_value) const {
- return logical_and(logical_and_value);
- }
- };
-
- /////////////////////////////////////////////////////////////////////////
- }
-
- using namespace adapter;
-}
-
-#endif//__SFJP_ROAST__adapter__operator__logical__and_HPP__
--- /dev/null
+// Roast+ License
+
+/*
+*/
+#ifndef __SFJP_ROAST__adapter__operator__logical__and_HPP__
+#define __SFJP_ROAST__adapter__operator__logical__and_HPP__
+
+namespace roast
+{
+ namespace adapter
+ {
+ /////////////////////////////////////////////////////////////////////////
+
+ // Logical And - &&
+ template <typename _Facade, typename _ValueType=bool>
+ class logical_and_adapter
+ {
+ protected:
+ virtual _ValueType logical_and(const _Facade& target) const =0;
+
+ public:
+ _ValueType operator &&(const _Facade& target) const {
+ return logical_and(target);
+ }
+ };
+
+ /////////////////////////////////////////////////////////////////////////
+
+ // Logical Or - ||
+ template <typename _Facade, typename _ValueType>
+ class logical_or_adapter
+ {
+ protected:
+ virtual _ValueType logical_or(const _Facade& target) const =0;
+
+ public:
+ _ValueType operator ||(const _Facade& target) const {
+ return logical_or(target);
+ }
+ };
+
+ /////////////////////////////////////////////////////////////////////////
+
+ // Logical Not - !
+ template <typename _Facade, typename _ValueType>
+ class logical_not_adapter
+ {
+ protected:
+ virtual _ValueType logical_not() const =0;
+
+ public:
+ _ValueType operator !() const {
+ return logical_not();
+ }
+ };
+
+ /////////////////////////////////////////////////////////////////////////
+ }
+
+ using namespace adapter;
+}
+
+#endif//__SFJP_ROAST__adapter__operator__logical__and_HPP__
#define __SFJP_ROAST__adapter__operator__operator_adapter_HPP__
#include "roast/_common.hpp"
+
#include "roast/adapter/operator/arith/arith.hpp"
#include "roast/adapter/operator/bit/bitwise.hpp"
+#include "roast/adapter/operator/logical/logical.hpp"
#include "roast/adapter/operator/indirection.hpp"
#include "roast/adapter/operator/arrow.hpp"