|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r70759 - sandbox/opaque/boost/opaque/meta_mixin
From: vicente.botet_at_[hidden]
Date: 2011-03-30 16:31:45
Author: viboes
Date: 2011-03-30 16:31:44 EDT (Wed, 30 Mar 2011)
New Revision: 70759
URL: http://svn.boost.org/trac/boost/changeset/70759
Log:
Opaque: remove template parameter from 2 macros
Text files modified:
sandbox/opaque/boost/opaque/meta_mixin/combined_operators.hpp | 151 ++++++++++++--------------
sandbox/opaque/boost/opaque/meta_mixin/operators.hpp | 220 +++++++++++++++++++++++++--------------
2 files changed, 208 insertions(+), 163 deletions(-)
Modified: sandbox/opaque/boost/opaque/meta_mixin/combined_operators.hpp
==============================================================================
--- sandbox/opaque/boost/opaque/meta_mixin/combined_operators.hpp (original)
+++ sandbox/opaque/boost/opaque/meta_mixin/combined_operators.hpp 2011-03-30 16:31:44 EDT (Wed, 30 Mar 2011)
@@ -63,17 +63,17 @@
};
};
-#define BOOST_OPAQUE_USING_LESS_THAN_COMPARABLE2(Final, U, Bool) \
- BOOST_OPAQUE_USING_LESS_THAN2(Final, U,Bool) \
- BOOST_OPAQUE_USING_LESS_THAN_EQUAL2(Final, U,Bool) \
- BOOST_OPAQUE_USING_GREATER_THAN2(Final, U,Bool) \
- BOOST_OPAQUE_USING_GREATER_THAN_EQUAL2(Final, U,Bool)
+#define BOOST_OPAQUE_USING_LESS_THAN_COMPARABLE2(Final, Bool) \
+ BOOST_OPAQUE_USING_LESS_THAN2(Final,Bool) \
+ BOOST_OPAQUE_USING_LESS_THAN_EQUAL2(Final,Bool) \
+ BOOST_OPAQUE_USING_GREATER_THAN2(Final,Bool) \
+ BOOST_OPAQUE_USING_GREATER_THAN_EQUAL2(Final,Bool)
- template <typename U, typename Bool=bool>
+ template <typename Bool=bool>
struct using_less_than_comparable2 {
template <typename Final, typename Base>
struct type : Base {
- BOOST_OPAQUE_USING_LESS_THAN_COMPARABLE2(Final, U, Bool)
+ BOOST_OPAQUE_USING_LESS_THAN_COMPARABLE2(Final, Bool)
};
};
@@ -90,15 +90,14 @@
};
};
-#define BOOST_OPAQUE_USING_ADDABLE2(Final,U) \
+#define BOOST_OPAQUE_USING_ADDABLE2(Final) \
BOOST_OPAQUE_USING_PLUS_ASSIGN(Final) \
- BOOST_OPAQUE_USING_PLUS2(Final,U)
+ BOOST_OPAQUE_USING_PLUS2(Final)
- template <typename U>
struct using_addable2 {
template <typename Final, typename Base>
struct type : Base {
- BOOST_OPAQUE_USING_ADDABLE2(Final, U)
+ BOOST_OPAQUE_USING_ADDABLE2(Final)
};
};
@@ -115,15 +114,14 @@
};
};
-#define BOOST_OPAQUE_USING_SUBTRACTABLE2(Final, U) \
+#define BOOST_OPAQUE_USING_SUBTRACTABLE2(Final) \
BOOST_OPAQUE_USING_MINUS_ASSIGN(Final) \
- BOOST_OPAQUE_USING_MINUS2(Final, U)
+ BOOST_OPAQUE_USING_MINUS2(Final)
- template <typename U>
struct using_subtractable2 {
template <typename Final, typename Base>
struct type : Base {
- BOOST_OPAQUE_USING_SUBTRACTABLE2(Final, U)
+ BOOST_OPAQUE_USING_SUBTRACTABLE2(Final)
};
};
@@ -140,15 +138,14 @@
};
};
-#define BOOST_OPAQUE_USING_MULTIPLIABLE2(Final, U) \
+#define BOOST_OPAQUE_USING_MULTIPLIABLE2(Final) \
BOOST_OPAQUE_USING_MULTIPLY_ASSIGN(Final) \
- BOOST_OPAQUE_USING_MULTIPLY2(Final, U)
+ BOOST_OPAQUE_USING_MULTIPLY2(Final)
- template <typename U>
struct using_multipliable2 {
template <typename Final, typename Base>
struct type : Base {
- BOOST_OPAQUE_USING_MULTIPLIABLE2(Final, U)
+ BOOST_OPAQUE_USING_MULTIPLIABLE2(Final)
};
};
@@ -165,15 +162,14 @@
};
};
-#define BOOST_OPAQUE_USING_DIVIDABLE2(Final, U) \
+#define BOOST_OPAQUE_USING_DIVIDABLE2(Final) \
BOOST_OPAQUE_USING_DIVIDE_ASSIGN(Final) \
- BOOST_OPAQUE_USING_DIVIDE2(Final, U)
+ BOOST_OPAQUE_USING_DIVIDE2(Final)
- template <typename U>
struct using_dividable2 {
template <typename Final, typename Base>
struct type : Base {
- BOOST_OPAQUE_USING_DIVIDABLE2(Final, U)
+ BOOST_OPAQUE_USING_DIVIDABLE2(Final)
};
};
@@ -203,15 +199,14 @@
};
};
-#define BOOST_OPAQUE_USING_BITWISE_XORABLE2(Final, U) \
+#define BOOST_OPAQUE_USING_BITWISE_XORABLE2(Final) \
BOOST_OPAQUE_USING_BITWISE_XOR_ASSIGN(Final) \
- BOOST_OPAQUE_USING_BITWISE_XOR2(Final, U)
+ BOOST_OPAQUE_USING_BITWISE_XOR2(Final)
- template <typename U>
struct using_bitwise_xorable2 {
template <typename Final, typename Base>
struct type : Base {
- BOOST_OPAQUE_USING_BITWISE_XORABLE2(Final, U)
+ BOOST_OPAQUE_USING_BITWISE_XORABLE2(Final)
};
};
@@ -228,15 +223,14 @@
};
};
-#define BOOST_OPAQUE_USING_BITWISE_ANDABLE2(Final, U) \
+#define BOOST_OPAQUE_USING_BITWISE_ANDABLE2(Final) \
BOOST_OPAQUE_USING_BITWISE_AND_ASSIGN(Final) \
- BOOST_OPAQUE_USING_BITWISE_AND2(Final, U)
+ BOOST_OPAQUE_USING_BITWISE_AND2(Final)
- template <typename U>
struct using_bitwise_andable2 {
template <typename Final, typename Base>
struct type : Base {
- BOOST_OPAQUE_USING_BITWISE_ANDABLE2(Final, U)
+ BOOST_OPAQUE_USING_BITWISE_ANDABLE2(Final)
};
};
@@ -253,15 +247,14 @@
};
};
-#define BOOST_OPAQUE_USING_BITWISE_ORABLE2(Final, U) \
+#define BOOST_OPAQUE_USING_BITWISE_ORABLE2(Final) \
BOOST_OPAQUE_USING_BITWISE_OR_ASSIGN(Final) \
- BOOST_OPAQUE_USING_BITWISE_OR2(Final, U)
+ BOOST_OPAQUE_USING_BITWISE_OR2(Final)
- template <typename U>
struct using_bitwise_orable2 {
template <typename Final, typename Base>
struct type : Base {
- BOOST_OPAQUE_USING_BITWISE_ORABLE2(Final, U)
+ BOOST_OPAQUE_USING_BITWISE_ORABLE2(Final)
};
};
@@ -352,15 +345,15 @@
};
};
-#define BOOST_OPAQUE_USING_TOTALY_ORDERED2(Final, U, Bool) \
+#define BOOST_OPAQUE_USING_TOTALY_ORDERED2(Final, Bool) \
BOOST_OPAQUE_USING_EQUALITY_COMPARABLE(Final, Bool) \
- BOOST_OPAQUE_USING_LESS_THAN_COMPARABLE2(Final, U, Bool)
+ BOOST_OPAQUE_USING_LESS_THAN_COMPARABLE2(Final, Bool)
- template <typename U, typename Bool=bool>
+ template <typename Bool=bool>
struct using_totally_ordered2 {
template <typename Final, typename Base>
struct type : Base {
- BOOST_OPAQUE_USING_TOTALY_ORDERED2(Final, U, Bool)
+ BOOST_OPAQUE_USING_TOTALY_ORDERED2(Final, Bool)
};
};
@@ -377,15 +370,14 @@
};
};
- #define BOOST_OPAQUE_USING_ADDITIVE2(Final, U) \
- BOOST_OPAQUE_USING_ADDABLE2(Final, U) \
- BOOST_OPAQUE_USING_SUBTRACTABLE2(Final, U)
+ #define BOOST_OPAQUE_USING_ADDITIVE2(Final) \
+ BOOST_OPAQUE_USING_ADDABLE2(Final) \
+ BOOST_OPAQUE_USING_SUBTRACTABLE2(Final)
- template <typename U>
struct using_additive2 {
template <typename Final, typename Base>
struct type : Base {
- BOOST_OPAQUE_USING_ADDITIVE2(Final, U)
+ BOOST_OPAQUE_USING_ADDITIVE2(Final)
};
};
@@ -404,15 +396,14 @@
};
};
- #define BOOST_OPAQUE_USING_MULTIPLICATIVE2(Final, U) \
- BOOST_OPAQUE_USING_MULTIPLIABLE2(Final, U) \
- BOOST_OPAQUE_USING_DIVIDABLE2(Final, U)
+ #define BOOST_OPAQUE_USING_MULTIPLICATIVE2(Final) \
+ BOOST_OPAQUE_USING_MULTIPLIABLE2(Final) \
+ BOOST_OPAQUE_USING_DIVIDABLE2(Final)
- template <typename U>
struct using_multiplicative2 {
template <typename Final, typename Base>
struct type : Base {
- BOOST_OPAQUE_USING_MULTIPLICATIVE2(Final, U)
+ BOOST_OPAQUE_USING_MULTIPLICATIVE2(Final)
};
};
@@ -446,17 +437,16 @@
};
};
-#define BOOST_OPAQUE_USING_ARITHMETIC2(Final, U) \
- BOOST_OPAQUE_USING_ADDITIVE2(Final, U) \
- BOOST_OPAQUE_USING_MULTIPLICATIVE2(Final, U)
+#define BOOST_OPAQUE_USING_ARITHMETIC2(Final) \
+ BOOST_OPAQUE_USING_ADDITIVE2(Final) \
+ BOOST_OPAQUE_USING_MULTIPLICATIVE2(Final)
- template <typename U>
struct using_arithmetic2
{
template <typename Final, typename Base = base_opaque_type >
struct type : Base
{
- BOOST_OPAQUE_USING_ARITHMETIC2(Final, U)
+ BOOST_OPAQUE_USING_ARITHMETIC2(Final)
};
};
@@ -479,8 +469,8 @@
//~ template <class T, class U, typename Base = base_opaque_type >
//~ struct bitwise2
- //~ : opaque::xorable2<T, U
- //~ , opaque::andable2<T, U
+ //~ : opaque::xorable2<T
+ //~ , opaque::andable2<T
//~ , opaque::orable2<T, U, Base
//~ > > > {};
@@ -500,18 +490,17 @@
};
};
-#define BOOST_OPAQUE_USING_BITWISE2(Final, U) \
- BOOST_OPAQUE_USING_BITWISE_XORABLE2(Final, U) \
- BOOST_OPAQUE_USING_BITWISE_ANDABLE2(Final, U) \
- BOOST_OPAQUE_USING_BITWISE_ORABLE2(Final, U)
+#define BOOST_OPAQUE_USING_BITWISE2(Final) \
+ BOOST_OPAQUE_USING_BITWISE_XORABLE2(Final) \
+ BOOST_OPAQUE_USING_BITWISE_ANDABLE2(Final) \
+ BOOST_OPAQUE_USING_BITWISE_ORABLE2(Final)
- template <typename U>
struct using_bitwise2
{
template <typename Final, typename Base = base_opaque_type >
struct type : Base
{
- BOOST_OPAQUE_USING_BITWISE2(Final, U)
+ BOOST_OPAQUE_USING_BITWISE2(Final)
};
};
@@ -568,17 +557,16 @@
};
};
-#define BOOST_OPAQUE_USING_RING_OPERATORS2(Final, U) \
- BOOST_OPAQUE_USING_ADDITIVE2(Final, U) \
- BOOST_OPAQUE_USING_MULTIPLIABLE2(Final, U)
+#define BOOST_OPAQUE_USING_RING_OPERATORS2(Final) \
+ BOOST_OPAQUE_USING_ADDITIVE2(Final) \
+ BOOST_OPAQUE_USING_MULTIPLIABLE2(Final)
- template <typename U>
struct using_ring_operators2
{
template <typename Final, typename Base = base_opaque_type >
struct type: Base
{
- BOOST_OPAQUE_USING_RING_OPERATORS2(Final, U)
+ BOOST_OPAQUE_USING_RING_OPERATORS2(Final)
};
};
@@ -599,17 +587,17 @@
};
};
-#define BOOST_OPAQUE_USING_ORDERED_RING_OPERATORS2(Final, U, Bool) \
- BOOST_OPAQUE_USING_RING_OPERATORS2(Final, U) \
- BOOST_OPAQUE_USING_TOTALY_ORDERED2(Final, U,Bool)
+#define BOOST_OPAQUE_USING_ORDERED_RING_OPERATORS2(Final, Bool) \
+ BOOST_OPAQUE_USING_RING_OPERATORS2(Final) \
+ BOOST_OPAQUE_USING_TOTALY_ORDERED2(Final,Bool)
-template <typename U, typename Bool=bool>
+template <typename Bool=bool>
struct using_ordered_ring_operators2
{
template <typename Final, typename Base = base_opaque_type>
struct type : Base
{
- BOOST_OPAQUE_USING_ORDERED_RING_OPERATORS2(Final, U,Bool)
+ BOOST_OPAQUE_USING_ORDERED_RING_OPERATORS2(Final,Bool)
};
};
@@ -637,17 +625,16 @@
};
};
-#define BOOST_OPAQUE_USING_FIELD_OPERATORS2(Final, U) \
- BOOST_OPAQUE_USING_RING_OPERATORS2(Final, U) \
- BOOST_OPAQUE_USING_DIVIDABLE2(Final, U)
+#define BOOST_OPAQUE_USING_FIELD_OPERATORS2(Final) \
+ BOOST_OPAQUE_USING_RING_OPERATORS2(Final) \
+ BOOST_OPAQUE_USING_DIVIDABLE2(Final)
- template <typename U>
struct using_field_operators2
{
template <typename Final, typename Base = base_opaque_type>
struct type: Base
{
- BOOST_OPAQUE_USING_FIELD_OPERATORS2(Final, U)
+ BOOST_OPAQUE_USING_FIELD_OPERATORS2(Final)
};
};
//////////////////////////////////////////////////////////////////////////////
@@ -674,17 +661,17 @@
};
};
-#define BOOST_OPAQUE_USING_ORDERED_FIELD_OPERATORS2(Final, U, Bool) \
- BOOST_OPAQUE_USING_FIELD_OPERATORS2(Final, U) \
- BOOST_OPAQUE_USING_TOTALY_ORDERED2(Final, U, Bool)
+#define BOOST_OPAQUE_USING_ORDERED_FIELD_OPERATORS2(Final, Bool) \
+ BOOST_OPAQUE_USING_FIELD_OPERATORS2(Final) \
+ BOOST_OPAQUE_USING_TOTALY_ORDERED2(Final, Bool)
-template <typename U, typename Bool=bool>
+template <typename Bool=bool>
struct using_ordered_field_operators2
{
template <typename Final, typename Base = base_opaque_type>
struct type : Base
{
- BOOST_OPAQUE_USING_ORDERED_FIELD_OPERATORS2(Final, U, Bool)
+ BOOST_OPAQUE_USING_ORDERED_FIELD_OPERATORS2(Final, Bool)
};
};
Modified: sandbox/opaque/boost/opaque/meta_mixin/operators.hpp
==============================================================================
--- sandbox/opaque/boost/opaque/meta_mixin/operators.hpp (original)
+++ sandbox/opaque/boost/opaque/meta_mixin/operators.hpp 2011-03-30 16:31:44 EDT (Wed, 30 Mar 2011)
@@ -63,7 +63,6 @@
#define BOOST_OPAQUE_OPERATORS_HPP
#if !defined(BOOST_OPAQUE_DOXYGEN_INVOKED)
-//#include <boost/operators.hpp>
#include <boost/config.hpp>
#include <boost/conversion/convert_to.hpp>
@@ -192,40 +191,46 @@
Bool operator OP (const Final& rhs) const; \
}; \
}; \
- template <typename U, typename Bool=bool> \
+ template <typename Bool=bool> \
struct BOOST_JOIN(BOOST_JOIN(using_,NAME),2) \
{ \
template <typename Final, typename Base> \
struct type: Base \
{ \
private:\
+ template <typename U> \
static Bool BOOST_OPAQUE_INTERNAL_NAME(NAME) (const Final& lhs, const U& rhs) \
{ \
return Bool(lhs.underlying() OP rhs);\
} \
+ template <typename U> \
static Bool BOOST_OPAQUE_INTERNAL_NAME(NAME) (const U& lhs, const Final& rhs) \
{ \
return Bool(lhs OP rhs.underlying());\
} \
public:\
+ template <typename U> \
friend Bool operator OP (const Final& lhs, const U& rhs) \
{ \
return Final::BOOST_OPAQUE_INTERNAL_NAME(NAME)(lhs, rhs);\
} \
+ template <typename U> \
friend Bool operator OP (const U& lhs, const Final& rhs) \
{ \
return Final::BOOST_OPAQUE_INTERNAL_NAME(NAME)(lhs, rhs);\
} \
}; \
}; \
- template <typename U, typename Bool=bool> \
+ template <typename Bool=bool> \
struct BOOST_JOIN(BOOST_JOIN(hiding,NAME),2) \
{ \
template <typename Final, typename Base> \
struct type: Base \
{ \
private :\
+ template <typename U> \
static Bool BOOST_JOIN(BOOST_JOIN(using_,NAME),_op) (const Final& lhs, const U& rhs); \
+ template <typename U> \
static Bool BOOST_JOIN(BOOST_JOIN(using_,NAME),_op) (const U& lhs, const Final& rhs); \
}; \
}; \
@@ -240,19 +245,23 @@
Bool operator OP(const Final& rhs) const;\
public :
-#define BOOST_OPAQUE_USING_REL_OP2(Final, U, Bool, OP) \
+#define BOOST_OPAQUE_USING_REL_OP2(Final, Bool, OP) \
+ template <typename U> \
friend Bool operator OP (const Final& lhs, const U& rhs) \
{ \
return Bool(lhs.underlying() OP rhs);\
} \
+ template <typename U> \
friend Bool operator OP (const U& lhs, const Final& rhs) \
{ \
return Bool(lhs OP rhs.underlying());\
}
-#define BOOST_OPAQUE_HIDING_REL_OP2(Final, U, Bool, OP) \
+#define BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, OP) \
private :\
+ template <typename U> \
friend Bool operator OP (const Final& lhs, const U& rhs); \
+ template <typename U> \
friend Bool operator OP (const U& lhs, const Final& rhs); \
public :
@@ -340,45 +349,106 @@
static Final BOOST_OPAQUE_INTERNAL_NAME(NAME) (const Final& lhs, const Final& rhs); \
public :
-#define BOOST_OPAQUE_USING_BINARY_OP2(Final, U, OP, NAME) \
+#define BOOST_OPAQUE_USING_BINARY_OP2(Final, OP, NAME) \
private:\
+ template <typename U> \
static Final BOOST_OPAQUE_INTERNAL_NAME(NAME) (const Final& lhs, const U& rhs) \
{ \
return Final(lhs.underlying() OP rhs);\
} \
+ template <typename U> \
static Final BOOST_OPAQUE_INTERNAL_NAME(NAME) (const U& lhs, const Final& rhs) \
{ \
return Final(lhs OP rhs.underlying());\
} \
public:\
+ template <typename U> \
friend Final operator OP (const Final& lhs, const U& rhs) \
{ \
return Final::BOOST_OPAQUE_INTERNAL_NAME(NAME)(lhs, rhs);\
} \
+ template <typename U> \
friend Final operator OP (const U& lhs, const Final& rhs) \
{ \
return Final::BOOST_OPAQUE_INTERNAL_NAME(NAME)(lhs, rhs);\
} \
-#define BOOST_OPAQUE_HIDING_BINARY_OP2(Final, U, OP, NAME) \
+#define BOOST_OPAQUE_HIDING_BINARY_OP2(Final, OP, NAME) \
private :\
+ template <typename U> \
static Final BOOST_OPAQUE_INTERNAL_NAME(NAME) (const Final& lhs, const U& rhs); \
+ template <typename U> \
static Final BOOST_OPAQUE_INTERNAL_NAME(NAME) (const U& lhs, const Final& rhs); \
public :
//////////////////////////////////////////////////////////////////////////////
+
+ #define BOOST_OPAQUE_DCL_META_MIXIN_BINARY_EX(OP, NAME) \
+ struct BOOST_JOIN(using_,NAME) \
+ { \
+ template <typename Final, typename Base> \
+ struct type: Base \
+ { \
+ private:\
+ template <typename U> \
+ static Final BOOST_OPAQUE_INTERNAL_NAME(NAME) (const Final& lhs, const U& rhs) \
+ { \
+ return Final(lhs.underlying() OP rhs);\
+ } \
+ public:\
+ template <typename U> \
+ friend Final operator OP (const Final& lhs, const U& rhs) \
+ { \
+ return Final::BOOST_OPAQUE_INTERNAL_NAME(NAME)(lhs, rhs);\
+ } \
+ }; \
+ }; \
+ struct BOOST_JOIN(BOOST_JOIN(hiding,NAME),2) \
+ { \
+ template <typename Final, typename Base> \
+ struct type: Base \
+ { \
+ private :\
+ template <typename U> \
+ static Final BOOST_JOIN(BOOST_JOIN(using_,NAME),_op) (const Final& lhs, const U& rhs); \
+ }; \
+ }; \
+
+
+ #define BOOST_OPAQUE_USING_BINARY_OP_EX(Final, OP, NAME) \
+ private:\
+ template <typename U> \
+ static Final BOOST_OPAQUE_INTERNAL_NAME(NAME) (const Final& lhs, const U& rhs) \
+ { \
+ return Final(lhs.underlying() OP rhs);\
+ } \
+ public:\
+ template <typename U> \
+ friend Final operator OP (const Final& lhs, const U& rhs) \
+ { \
+ return Final::BOOST_OPAQUE_INTERNAL_NAME(NAME)(lhs, rhs);\
+ } \
+
+ #define BOOST_OPAQUE_HIDING_BINARY_OP_EX(Final, OP, NAME) \
+ private :\
+ template <typename U> \
+ static Final BOOST_OPAQUE_INTERNAL_NAME(NAME) (const Final& lhs, const U& rhs); \
+ public :
+
+/////////////////////////////////////////////////////////////////////////////
+
#define BOOST_OPAQUE_USING_LESS_THAN(Final, Bool) \
BOOST_OPAQUE_USING_REL_OP(Final, Bool, <)
#define BOOST_OPAQUE_HIDING_LESS_THAN(Final, Bool) \
BOOST_OPAQUE_HIDING_REL_OP(Final, Bool, <)
-#define BOOST_OPAQUE_USING_LESS_THAN2(Final, U, Bool) \
- BOOST_OPAQUE_USING_REL_OP2(Final, U, Bool, <)
+#define BOOST_OPAQUE_USING_LESS_THAN2(Final, Bool) \
+ BOOST_OPAQUE_USING_REL_OP2(Final, Bool, <)
-#define BOOST_OPAQUE_HIDING_LESS_THAN2(Final, U, Bool) \
- BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, U, <)
+#define BOOST_OPAQUE_HIDING_LESS_THAN2(Final, Bool) \
+ BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, <)
BOOST_OPAQUE_DCL_META_MIXIN_REL(<, less_than)
@@ -391,11 +461,11 @@
#define BOOST_OPAQUE_HIDING_LESS_THAN_EQUAL(Final, Bool) \
BOOST_OPAQUE_HIDING_REL_OP(Final, Bool, <=)
-#define BOOST_OPAQUE_USING_LESS_THAN_EQUAL2(Final, U, Bool) \
- BOOST_OPAQUE_USING_REL_OP2(Final, U, Bool, <=)
+#define BOOST_OPAQUE_USING_LESS_THAN_EQUAL2(Final, Bool) \
+ BOOST_OPAQUE_USING_REL_OP2(Final, Bool, <=)
-#define BOOST_OPAQUE_HIDING_LESS_THAN_EQUAL2(Final, U, Bool) \
- BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, U, <=)
+#define BOOST_OPAQUE_HIDING_LESS_THAN_EQUAL2(Final, Bool) \
+ BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, <=)
BOOST_OPAQUE_DCL_META_MIXIN_REL(<=, less_than_equal)
@@ -407,11 +477,11 @@
#define BOOST_OPAQUE_HIDING_GREATER_THAN(Final, Bool) \
BOOST_OPAQUE_HIDING_REL_OP(Final, Bool, >)
-#define BOOST_OPAQUE_USING_GREATER_THAN2(Final, U, Bool) \
- BOOST_OPAQUE_USING_REL_OP2(Final, U, Bool, >)
+#define BOOST_OPAQUE_USING_GREATER_THAN2(Final, Bool) \
+ BOOST_OPAQUE_USING_REL_OP2(Final, Bool, >)
-#define BOOST_OPAQUE_HIDING_GREATER_THAN2(Final, U, Bool) \
- BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, U, >)
+#define BOOST_OPAQUE_HIDING_GREATER_THAN2(Final, Bool) \
+ BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, >)
BOOST_OPAQUE_DCL_META_MIXIN_REL(>, greater_than)
@@ -423,11 +493,11 @@
#define BOOST_OPAQUE_HIDING_GREATER_THAN_EQUAL(Final, Bool) \
BOOST_OPAQUE_HIDING_REL_OP(Final, Bool, >=)
-#define BOOST_OPAQUE_USING_GREATER_THAN_EQUAL2(Final, U, Bool) \
- BOOST_OPAQUE_USING_REL_OP2(Final, U, Bool, >=)
+#define BOOST_OPAQUE_USING_GREATER_THAN_EQUAL2(Final, Bool) \
+ BOOST_OPAQUE_USING_REL_OP2(Final, Bool, >=)
-#define BOOST_OPAQUE_HIDING_GREATER_THAN_EQUAL2(Final, U, Bool) \
- BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, U, >=)
+#define BOOST_OPAQUE_HIDING_GREATER_THAN_EQUAL2(Final, Bool) \
+ BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, >=)
BOOST_OPAQUE_DCL_META_MIXIN_REL(>=, greater_than_equal)
@@ -439,11 +509,11 @@
#define BOOST_OPAQUE_HIDING_EQUAL(Final, Bool) \
BOOST_OPAQUE_HIDING_REL_OP(Final, Bool, ==)
-#define BOOST_OPAQUE_USING_EQUAL2(Final, U, Bool) \
- BOOST_OPAQUE_USING_REL_OP2(Final, U, Bool, ==)
+#define BOOST_OPAQUE_USING_EQUAL2(Final, Bool) \
+ BOOST_OPAQUE_USING_REL_OP2(Final, Bool, ==)
-#define BOOST_OPAQUE_HIDING_EQUAL2(Final, U, Bool) \
- BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, U, ==)
+#define BOOST_OPAQUE_HIDING_EQUAL2(Final, Bool) \
+ BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, ==)
BOOST_OPAQUE_DCL_META_MIXIN_REL(==, equal)
@@ -455,11 +525,11 @@
#define BOOST_OPAQUE_HIDING_NOT_EQUAL(Final, Bool) \
BOOST_OPAQUE_HIDING_REL_OP(Final, Bool, !=)
-#define BOOST_OPAQUE_USING_NOT_EQUAL2(Final, U, Bool) \
- BOOST_OPAQUE_USING_REL_OP2(Final, U, Bool, !=)
+#define BOOST_OPAQUE_USING_NOT_EQUAL2(Final, Bool) \
+ BOOST_OPAQUE_USING_REL_OP2(Final, Bool, !=)
-#define BOOST_OPAQUE_HIDING_NOT_EQUAL2(Final, U, Bool) \
- BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, U, !=)
+#define BOOST_OPAQUE_HIDING_NOT_EQUAL2(Final, Bool) \
+ BOOST_OPAQUE_HIDING_REL_OP2(Final, Bool, !=)
BOOST_OPAQUE_DCL_META_MIXIN_REL(!=, not_equal)
@@ -872,11 +942,11 @@
#define BOOST_OPAQUE_HIDING_PLUS(Final) \
BOOST_OPAQUE_HIDING_BINARY_OP(Final, +, plus)
-#define BOOST_OPAQUE_USING_PLUS2(Final, U) \
- BOOST_OPAQUE_USING_BINARY_OP2(Final, U, +, plus)
+#define BOOST_OPAQUE_USING_PLUS2(Final) \
+ BOOST_OPAQUE_USING_BINARY_OP2(Final, +, plus)
-#define BOOST_OPAQUE_HIDING_PLUS2(Final, U) \
- BOOST_OPAQUE_HIDING_BINARY_OP2(Final, U, +, plus)
+#define BOOST_OPAQUE_HIDING_PLUS2(Final) \
+ BOOST_OPAQUE_HIDING_BINARY_OP2(Final, +, plus)
BOOST_OPAQUE_DCL_META_MIXIN_BINARY(+, plus)
@@ -888,11 +958,11 @@
#define BOOST_OPAQUE_HIDING_MINUS(Final) \
BOOST_OPAQUE_HIDING_BINARY_OP(Final, -, minus)
-#define BOOST_OPAQUE_USING_MINUS2(Final, U) \
- BOOST_OPAQUE_USING_BINARY_OP2(Final, U, -, minus)
+#define BOOST_OPAQUE_USING_MINUS2(Final) \
+ BOOST_OPAQUE_USING_BINARY_OP2(Final, -, minus)
-#define BOOST_OPAQUE_HIDING_MINUS2(Final, U) \
- BOOST_OPAQUE_HIDING_BINARY_OP2(Final, U, -, minus)
+#define BOOST_OPAQUE_HIDING_MINUS2(Final) \
+ BOOST_OPAQUE_HIDING_BINARY_OP2(Final, -, minus)
BOOST_OPAQUE_DCL_META_MIXIN_BINARY(-, minus)
@@ -904,11 +974,11 @@
#define BOOST_OPAQUE_HIDING_MULTIPLY(Final) \
BOOST_OPAQUE_HIDING_BINARY_OP(Final, *, multiply)
-#define BOOST_OPAQUE_USING_MULTIPLY2(Final, U) \
- BOOST_OPAQUE_USING_BINARY_OP2(Final, U, *, multiply)
+#define BOOST_OPAQUE_USING_MULTIPLY2(Final) \
+ BOOST_OPAQUE_USING_BINARY_OP2(Final, *, multiply)
-#define BOOST_OPAQUE_HIDING_MULTIPLY2(Final, U) \
- BOOST_OPAQUE_HIDING_BINARY_OP2(Final, U, *, multiply)
+#define BOOST_OPAQUE_HIDING_MULTIPLY2(Final) \
+ BOOST_OPAQUE_HIDING_BINARY_OP2(Final, *, multiply)
BOOST_OPAQUE_DCL_META_MIXIN_BINARY(*, multiply)
@@ -921,11 +991,11 @@
#define BOOST_OPAQUE_HIDING_DIVIDE(Final) \
BOOST_OPAQUE_HIDING_BINARY_OP(Final, /, divide)
-#define BOOST_OPAQUE_USING_DIVIDE2(Final, U) \
- BOOST_OPAQUE_USING_BINARY_OP2(Final, U, /, divide)
+#define BOOST_OPAQUE_USING_DIVIDE2(Final) \
+ BOOST_OPAQUE_USING_BINARY_OP2(Final, /, divide)
-#define BOOST_OPAQUE_HIDING_DIVIDE2(Final, U) \
- BOOST_OPAQUE_HIDING_BINARY_OP2(Final, U, /, divide)
+#define BOOST_OPAQUE_HIDING_DIVIDE2(Final) \
+ BOOST_OPAQUE_HIDING_BINARY_OP2(Final, /, divide)
BOOST_OPAQUE_DCL_META_MIXIN_BINARY(/, divide)
@@ -937,11 +1007,11 @@
#define BOOST_OPAQUE_HIDING_MODULUS(Final) \
BOOST_OPAQUE_HIDING_BINARY_OP(Final, %, modulus)
-#define BOOST_OPAQUE_USING_MODULUS2(Final, U) \
- BOOST_OPAQUE_USING_BINARY_OP2(Final, U, %, modulus)
+#define BOOST_OPAQUE_USING_MODULUS2(Final) \
+ BOOST_OPAQUE_USING_BINARY_OP2(Final, %, modulus)
-#define BOOST_OPAQUE_HIDING_MODULUS2(Final, U) \
- BOOST_OPAQUE_HIDING_BINARY_OP2(Final, U, %, modulus)
+#define BOOST_OPAQUE_HIDING_MODULUS2(Final) \
+ BOOST_OPAQUE_HIDING_BINARY_OP2(Final, %, modulus)
BOOST_OPAQUE_DCL_META_MIXIN_BINARY(%, modulus)
@@ -953,11 +1023,11 @@
#define BOOST_OPAQUE_HIDING_BITWISE_XOR(Final) \
BOOST_OPAQUE_HIDING_BINARY_OP(Final, ^, bitwise_xor)
-#define BOOST_OPAQUE_USING_BITWISE_XOR2(Final, U) \
- BOOST_OPAQUE_USING_BINARY_OP2(Final, U, ^, bitwise_xor)
+#define BOOST_OPAQUE_USING_BITWISE_XOR2(Final) \
+ BOOST_OPAQUE_USING_BINARY_OP2(Final, ^, bitwise_xor)
-#define BOOST_OPAQUE_HIDING_BITWISE_XOR2(Final, U) \
- BOOST_OPAQUE_HIDING_BINARY_OP2(Final, U, ^, bitwise_xor)
+#define BOOST_OPAQUE_HIDING_BITWISE_XOR2(Final) \
+ BOOST_OPAQUE_HIDING_BINARY_OP2(Final, ^, bitwise_xor)
BOOST_OPAQUE_DCL_META_MIXIN_BINARY(^, bitwise_xor)
@@ -969,11 +1039,11 @@
#define BOOST_OPAQUE_HIDING_BITWISE_OR(Final) \
BOOST_OPAQUE_HIDING_BINARY_OP(Final, |, bitwise_or)
-#define BOOST_OPAQUE_USING_BITWISE_OR2(Final, U) \
- BOOST_OPAQUE_USING_BINARY_OP2(Final, U, |, bitwise_or)
+#define BOOST_OPAQUE_USING_BITWISE_OR2(Final) \
+ BOOST_OPAQUE_USING_BINARY_OP2(Final, |, bitwise_or)
-#define BOOST_OPAQUE_HIDING_BITWISE_OR2(Final, U) \
- BOOST_OPAQUE_HIDING_BINARY_OP2(Final, U, |, bitwise_or)
+#define BOOST_OPAQUE_HIDING_BITWISE_OR2(Final) \
+ BOOST_OPAQUE_HIDING_BINARY_OP2(Final, |, bitwise_or)
BOOST_OPAQUE_DCL_META_MIXIN_BINARY(|, bitwise_or)
@@ -985,46 +1055,34 @@
#define BOOST_OPAQUE_HIDING_BITWISE_AND(Final) \
BOOST_OPAQUE_HIDING_BINARY_OP(Final, &, bitwise_and)
-#define BOOST_OPAQUE_USING_BITWISE_AND2(Final, U) \
- BOOST_OPAQUE_USING_BINARY_OP2(Final, U, &, bitwise_and)
+#define BOOST_OPAQUE_USING_BITWISE_AND2(Final) \
+ BOOST_OPAQUE_USING_BINARY_OP2(Final, &, bitwise_and)
-#define BOOST_OPAQUE_HIDING_BITWISE_AND2(Final, U) \
- BOOST_OPAQUE_HIDING_BINARY_OP2(Final, U, &, bitwise_and)
+#define BOOST_OPAQUE_HIDING_BITWISE_AND2(Final) \
+ BOOST_OPAQUE_HIDING_BINARY_OP2(Final, &, bitwise_and)
BOOST_OPAQUE_DCL_META_MIXIN_BINARY(&, bitwise_and)
//////////////////////////////////////////////////////////////////////////////
#define BOOST_OPAQUE_USING_LEFT_SHIFT(Final) \
- BOOST_OPAQUE_USING_BINARY_OP(Final, <<, left_shift)
+ BOOST_OPAQUE_USING_BINARY_OP_EX(Final, <<, left_shift)
#define BOOST_OPAQUE_HIDING_LEFT_SHIFT(Final) \
- BOOST_OPAQUE_HIDING_BINARY_OP(Final, <<, left_shift)
+ BOOST_OPAQUE_HIDING_BINARY_OP_EX(Final, <<, left_shift)
-#define BOOST_OPAQUE_USING_LEFT_SHIFT2(Final, U) \
- BOOST_OPAQUE_USING_BINARY_OP2(Final, U, <<, left_shift)
-
-#define BOOST_OPAQUE_HIDING_LEFT_SHIFT2(Final, U) \
- BOOST_OPAQUE_HIDING_BINARY_OP2(Final, U, <<, left_shift)
-
-BOOST_OPAQUE_DCL_META_MIXIN_BINARY(<<, left_shift)
+BOOST_OPAQUE_DCL_META_MIXIN_BINARY_EX(<<, left_shift)
//////////////////////////////////////////////////////////////////////////////
#define BOOST_OPAQUE_USING_RIGHT_SHIFT(Final) \
- BOOST_OPAQUE_USING_BINARY_OP(Final, >>, right_shift)
+ BOOST_OPAQUE_USING_BINARY_OP_EX(Final, >>, right_shift)
#define BOOST_OPAQUE_HIDING_RIGHT_SHIFT(Final) \
- BOOST_OPAQUE_HIDING_BINARY_OP(Final, >>, right_shift)
-
-#define BOOST_OPAQUE_USING_RIGHT_SHIFT2(Final, U) \
- BOOST_OPAQUE_USING_BINARY_OP2(Final, U, >>, right_shift)
-
-#define BOOST_OPAQUE_HIDING_RIGHT_SHIFT2(Final, U) \
- BOOST_OPAQUE_HIDING_BINARY_OP2(Final, U, >>, right_shift)
+ BOOST_OPAQUE_HIDING_BINARY_OP_EX(Final, >>, right_shift)
-BOOST_OPAQUE_DCL_META_MIXIN_BINARY(>>, right_shift)
+BOOST_OPAQUE_DCL_META_MIXIN_BINARY_EX(>>, right_shift)
}
}
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk