$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r62055 - in sandbox/SOC/2010/bit_masks: boost/integer/details lib/integer/test
From: bbartmanboost_at_[hidden]
Date: 2010-05-17 08:31:01
Author: bbartman
Date: 2010-05-17 08:31:00 EDT (Mon, 17 May 2010)
New Revision: 62055
URL: http://svn.boost.org/trac/boost/changeset/62055
Log:
completed testing on bit_map support functions these will be included in the bit_mask header file
Text files modified: 
   sandbox/SOC/2010/bit_masks/boost/integer/details/bit_mask_function_support.hpp |    32 ++++++++++++++++----------------        
   sandbox/SOC/2010/bit_masks/lib/integer/test/bitwise_operator_test.cpp          |    31 ++++++++++++++++++++++++-------         
   2 files changed, 40 insertions(+), 23 deletions(-)
Modified: sandbox/SOC/2010/bit_masks/boost/integer/details/bit_mask_function_support.hpp
==============================================================================
--- sandbox/SOC/2010/bit_masks/boost/integer/details/bit_mask_function_support.hpp	(original)
+++ sandbox/SOC/2010/bit_masks/boost/integer/details/bit_mask_function_support.hpp	2010-05-17 08:31:00 EDT (Mon, 17 May 2010)
@@ -17,34 +17,34 @@
 // Overloads for bitwise and
 template <typename T, unsigned int Offset, unsigned int Width>
 inline T operator&(T t, bit_mask<T,Offset,Width> ) {
-    return t & bit_mask<T,Offset,Width>::value;
+    return t & bit_mask<T, Offset, Width>::value;
 }
 
-template <typename Mask, typename T>
-inline T operator&(Mask m, T t) {
-    return Mask::value & t;
+template <typename T, unsigned int Offset, unsigned int Width>
+inline T operator&(bit_mask<T,Offset,Width>, T t) {
+    return bit_mask<T,Offset,Width>::value & t;
 }
 
 // Overloads for bitwise or
-template <typename T, typename Mask >
-inline T operator|(T t, Mask m) {
-    return t | Mask::value;
+template <typename T, unsigned int Offset, unsigned int Width>
+inline T operator|(T t, bit_mask<T,Offset,Width>) {
+    return t | bit_mask<T,Offset,Width>::value;
 }
 
-template <typename Mask, typename T>
-inline T operator|(Mask, T t) {
-    return Mask::value | t;
+template <typename T, unsigned int Offset, unsigned int Width>
+inline T operator|(bit_mask<T,Offset,Width>, T t) {
+    return bit_mask<T,Offset,Width>::value | t;
 }
 
 // Overloads for bitwise xor
-template <typename T, typename Mask>
-inline T operator^(T t, Mask) {
-    return t ^ Mask::value;
+template <typename T, unsigned int Offset, unsigned int Width>
+inline T operator^(T t, bit_mask<T,Offset,Width>) {
+    return t ^ bit_mask<T,Offset,Width>::value;
 }
 
-template <typename T, typename Mask>
-inline T operator^(Mask, T t) {
-    return Mask::value ^ t;
+template <typename T, unsigned int Offset, unsigned int Width>
+inline T operator^(bit_mask<T,Offset,Width>, T t) {
+    return bit_mask<T,Offset,Width>::value ^ t;
 }
 
 } // end of boost namespace.
Modified: sandbox/SOC/2010/bit_masks/lib/integer/test/bitwise_operator_test.cpp
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/test/bitwise_operator_test.cpp	(original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/test/bitwise_operator_test.cpp	2010-05-17 08:31:00 EDT (Mon, 17 May 2010)
@@ -10,15 +10,33 @@
 #include <boost/integer/bit_mask.hpp>
 #include <boost/integer/details/bit_mask_function_support.hpp>
 
-void ignore_unused(...) { }
 
 // Testing for operator overloads.
 using namespace boost;
 
 template <typename T>
 void test_function() {
-    T bitwise_and = T(0) & bit_mask<T, 1>()();
-    ignore_unused( bitwise_and );
+
+    // operator &(T, bit_mask)
+    T bit_result = T(0) & bit_mask<T, 1>();
+
+    // operator &(bit_mask, T)
+    bit_result = bit_mask<T, 1>() & T(0);
+    
+    // operator |(T, bit_mask)
+    bit_result = T(0) | bit_mask<T,1>();
+    
+    // operator |(bit_mask, T)
+    bit_result = T(0) | bit_mask<T,1>();
+
+    // operator |(T, bit_mask)
+    bit_result = bit_mask<T,1>() | T(0);
+
+    // operator ^(bit_mask, T)
+    bit_result = T(0) ^ bit_mask<T,1>();
+
+    // operator ^(T, bit_mask)
+    bit_result = bit_mask<T,1>() ^ T(0);
 }
 
 
@@ -32,9 +50,8 @@
 
 int main() {
     mpl::for_each< test_types   >( type_tester() ); 
-    // mpl::for_each< test_types_2 >( type_tester() ); 
-    // mpl::for_each< test_types_3 >( type_tester() ); 
-    char bitwise_and = char(0) & bit_mask<char, 1>();
-    ignore_unused( bitwise_and );
+    mpl::for_each< test_types_2 >( type_tester() ); 
+    mpl::for_each< test_types_3 >( type_tester() ); 
+
     return 0;
 }