$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r70605 - in trunk: boost/spirit/home/karma/binary boost/spirit/home/karma/char boost/spirit/home/karma/detail boost/spirit/home/karma/nonterminal boost/spirit/home/karma/operator boost/spirit/home/karma/string boost/spirit/home/lex/lexer/lexertl boost/spirit/home/qi/detail boost/spirit/home/qi/nonterminal boost/spirit/home/support boost/spirit/home/support/iterators/detail boost/spirit/home/support/utree boost/spirit/home/support/utree/detail libs/spirit/test/karma libs/spirit/test/lex libs/spirit/test/qi libs/spirit/test/support
From: hartmut.kaiser_at_[hidden]
Date: 2011-03-26 19:48:41
Author: hkaiser
Date: 2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
New Revision: 70605
URL: http://svn.boost.org/trac/boost/changeset/70605
Log:
Spirit: applied Thomas Heller's patch fixing a bunch of warnings
Text files modified: 
   trunk/boost/spirit/home/karma/binary/binary.hpp                           |     2                                         
   trunk/boost/spirit/home/karma/binary/padding.hpp                          |     2                                         
   trunk/boost/spirit/home/karma/char/char_class.hpp                         |     2                                         
   trunk/boost/spirit/home/karma/detail/extract_from.hpp                     |     8 ++--                                    
   trunk/boost/spirit/home/karma/detail/output_iterator.hpp                  |     2                                         
   trunk/boost/spirit/home/karma/detail/string_compare.hpp                   |     2                                         
   trunk/boost/spirit/home/karma/nonterminal/grammar.hpp                     |     2                                         
   trunk/boost/spirit/home/karma/nonterminal/simple_trace.hpp                |     2                                         
   trunk/boost/spirit/home/karma/operator/plus.hpp                           |     4 +-                                      
   trunk/boost/spirit/home/karma/string/symbols.hpp                          |     4 +-                                      
   trunk/boost/spirit/home/lex/lexer/lexertl/functor_data.hpp                |     4 +-                                      
   trunk/boost/spirit/home/lex/lexer/lexertl/generate_static.hpp             |     2                                         
   trunk/boost/spirit/home/qi/detail/construct.hpp                           |    10 +++---                                  
   trunk/boost/spirit/home/qi/nonterminal/grammar.hpp                        |     2                                         
   trunk/boost/spirit/home/support/attributes.hpp                            |     4 +-                                      
   trunk/boost/spirit/home/support/iterators/detail/functor_input_policy.hpp |     4 +-                                      
   trunk/boost/spirit/home/support/iterators/detail/istream_policy.hpp       |     2                                         
   trunk/boost/spirit/home/support/utree/detail/utree_detail2.hpp            |     8 ++--                                    
   trunk/boost/spirit/home/support/utree/operators.hpp                       |    56 ++++++++++++++++++++--------------------
   trunk/boost/spirit/home/support/utree/utree.hpp                           |     2                                         
   trunk/boost/spirit/home/support/utree/utree_traits.hpp                    |     2                                         
   trunk/libs/spirit/test/karma/regression_real_scientific.cpp               |     2                                         
   trunk/libs/spirit/test/lex/string_token_id.cpp                            |     2                                         
   trunk/libs/spirit/test/qi/grammar.cpp                                     |     2                                         
   trunk/libs/spirit/test/qi/regression_clear.cpp                            |     4 +-                                      
   trunk/libs/spirit/test/qi/regression_transform_assignment.cpp             |     2                                         
   trunk/libs/spirit/test/support/regression_multi_pass_functor.cpp          |     2                                         
   27 files changed, 70 insertions(+), 70 deletions(-)
Modified: trunk/boost/spirit/home/karma/binary/binary.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/binary/binary.hpp	(original)
+++ trunk/boost/spirit/home/karma/binary/binary.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -225,7 +225,7 @@
         // been initialized from a direct literal
         template <
             typename OutputIterator, typename Context, typename Delimiter>
-        static bool generate(OutputIterator& sink, Context&, Delimiter const& d
+        static bool generate(OutputIterator&, Context&, Delimiter const&
           , unused_type)
         {
             // It is not possible (doesn't make sense) to use binary generators
Modified: trunk/boost/spirit/home/karma/binary/padding.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/binary/padding.hpp	(original)
+++ trunk/boost/spirit/home/karma/binary/padding.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -85,7 +85,7 @@
         }
 
         template <typename Context>
-        static info what(Context const& ctx)
+        static info what(Context const&)
         {
             return info("pad");
         }
Modified: trunk/boost/spirit/home/karma/char/char_class.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/char/char_class.hpp	(original)
+++ trunk/boost/spirit/home/karma/char/char_class.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -93,7 +93,7 @@
 
         // char_class shouldn't be used without any associated attribute
         template <typename CharParam, typename Context>
-        bool test(unused_type, CharParam& ch, Context&) const
+        bool test(unused_type, CharParam&, Context&) const
         {
             // It is not possible (doesn't make sense) to use char_ generators 
             // without providing any attribute, as the generator doesn't 'know' 
Modified: trunk/boost/spirit/home/karma/detail/extract_from.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/detail/extract_from.hpp	(original)
+++ trunk/boost/spirit/home/karma/detail/extract_from.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -134,7 +134,7 @@
         // handle case where container value type is convertible to result type
         // we simply return the front element of the container
         template <typename Context, typename Pred>
-        static type call(Attribute const& attr, Context& ctx, mpl::true_, Pred)
+        static type call(Attribute const& attr, Context&, mpl::true_, Pred)
         {
             // return first element from container
             typedef typename traits::container_iterator<Attribute const>::type 
@@ -155,7 +155,7 @@
         }
 
         template <typename Context>
-        static type call(Attribute const& attr, Context& ctx, mpl::false_, mpl::true_)
+        static type call(Attribute const& attr, Context&, mpl::false_, mpl::true_)
         {
             typedef typename char_type_of<Attribute>::type char_type;
 
@@ -167,7 +167,7 @@
 
         // everything else gets just passed through
         template <typename Context>
-        static type call(Attribute const& attr, Context& ctx, mpl::false_, mpl::false_)
+        static type call(Attribute const& attr, Context&, mpl::false_, mpl::false_)
         {
             return type(attr);
         }
@@ -191,7 +191,7 @@
         typedef Attribute const& type;
 
         template <typename Context>
-        static type call(Attribute const& attr, Context& ctx)
+        static type call(Attribute const& attr, Context&)
         {
             return attr;
         }
Modified: trunk/boost/spirit/home/karma/detail/output_iterator.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/detail/output_iterator.hpp	(original)
+++ trunk/boost/spirit/home/karma/detail/output_iterator.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -599,7 +599,7 @@
 
     ///////////////////////////////////////////////////////////////////////////
     template <typename Sink>
-    bool sink_is_good(Sink const& sink)
+    bool sink_is_good(Sink const&)
     {
         return true;      // the general case is always good
     }
Modified: trunk/boost/spirit/home/karma/detail/string_compare.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/detail/string_compare.hpp	(original)
+++ trunk/boost/spirit/home/karma/detail/string_compare.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -48,7 +48,7 @@
     }
 
     template <typename Char, typename CharEncoding, typename Tag>
-    bool string_compare(Char const* attr, Char const* lit, CharEncoding ce, Tag tag)
+    bool string_compare(Char const* attr, Char const* lit, CharEncoding, Tag)
     {
         Char ch_attr = *attr;
         Char ch_lit = spirit::char_class::convert<CharEncoding>::to(Tag(), *lit);
Modified: trunk/boost/spirit/home/karma/nonterminal/grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/nonterminal/grammar.hpp	(original)
+++ trunk/boost/spirit/home/karma/nonterminal/grammar.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -99,7 +99,7 @@
         }
 
         template <typename Context>
-        info what(Context& context) const
+        info what(Context&) const
         {
             return info(name_);
         }
Modified: trunk/boost/spirit/home/karma/nonterminal/simple_trace.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/nonterminal/simple_trace.hpp	(original)
+++ trunk/boost/spirit/home/karma/nonterminal/simple_trace.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -64,7 +64,7 @@
         template <typename OutputIterator, typename Context, typename State
           , typename Buffer>
         void operator()(
-            OutputIterator& sink, Context const& context
+            OutputIterator&, Context const& context
           , State state, std::string const& rule_name
           , Buffer const& buffer) const
         {
Modified: trunk/boost/spirit/home/karma/operator/plus.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/operator/plus.hpp	(original)
+++ trunk/boost/spirit/home/karma/operator/plus.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -49,7 +49,7 @@
         // are just skipped). This allows to selectively generate items in 
         // the provided attribute.
         template <typename F, typename Attribute>
-        bool generate_subject(F f, Attribute const& attr, bool& result, mpl::false_) const
+        bool generate_subject(F f, Attribute const&, bool& result, mpl::false_) const
         {
             bool r = !f(subject);
             if (r) 
@@ -60,7 +60,7 @@
         }
 
         template <typename F, typename Attribute>
-        bool generate_subject(F f, Attribute const& attr, bool& result, mpl::true_) const
+        bool generate_subject(F f, Attribute const&, bool& result, mpl::true_) const
         {
             bool r = !f(subject);
             if (r)
Modified: trunk/boost/spirit/home/karma/string/symbols.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/string/symbols.hpp	(original)
+++ trunk/boost/spirit/home/karma/string/symbols.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -115,7 +115,7 @@
 
         // not a container nor a fusion sequence
         template <typename T_>
-        static type call(T_ const& t, mpl::false_, mpl::false_)
+        static type call(T_ const&, mpl::false_, mpl::false_)
         {
             return unused;
         }
@@ -309,7 +309,7 @@
         // non-const version needed to suppress proto's -= kicking in
         template <typename Attr>
         friend remover const&
-        operator-= (symbols& sym, Attr& str)
+        operator-= (symbols& sym, Attr& attr)
         {
             return sym.remove(attr);
         }
Modified: trunk/boost/spirit/home/lex/lexer/lexertl/functor_data.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/lexer/lexertl/functor_data.hpp	(original)
+++ trunk/boost/spirit/home/lex/lexer/lexertl/functor_data.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -93,7 +93,7 @@
             //
             // This function does nothing as long as no semantic actions are 
             // used.
-            Iterator const& less(Iterator const& it, int n) 
+            Iterator const& less(Iterator const& it, int) 
             { 
                 // The following assertion fires most likely because you are 
                 // using lexer semantic actions without using the actor_lexer
@@ -131,7 +131,7 @@
             //
             // This function does nothing as long as no semantic actions are 
             // used.
-            bool lookahead(std::size_t id, std::size_t state = std::size_t(~0)) 
+            bool lookahead(std::size_t, std::size_t /*state*/ = std::size_t(~0)) 
             { 
                 // The following assertion fires most likely because you are 
                 // using lexer semantic actions without using the actor_lexer
Modified: trunk/boost/spirit/home/lex/lexer/lexertl/generate_static.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/lexer/lexertl/generate_static.hpp	(original)
+++ trunk/boost/spirit/home/lex/lexer/lexertl/generate_static.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -827,7 +827,7 @@
             return false;
 
         std::size_t const dfas_ = sm_.data()._dfa->size();
-        std::size_t const lookups_ = sm_.data()._lookup->front()->size();
+//         std::size_t const lookups_ = sm_.data()._lookup->front()->size();
 
         os_ << "// Copyright (c) 2008-2009 Ben Hanson\n";
         os_ << "// Copyright (c) 2008-2011 Hartmut Kaiser\n";
Modified: trunk/boost/spirit/home/qi/detail/construct.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/detail/construct.hpp	(original)
+++ trunk/boost/spirit/home/qi/detail/construct.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -27,7 +27,7 @@
     struct assign_to_attribute_from_iterators<char, Iterator>
     {
         static void
-        call(Iterator const& first, Iterator const& last, char& attr)
+        call(Iterator const& first, Iterator const&, char& attr)
         {
             attr = *first;
         }
@@ -37,7 +37,7 @@
     struct assign_to_attribute_from_iterators<signed char, Iterator>
     {
         static void
-        call(Iterator const& first, Iterator const& last, signed char& attr)
+        call(Iterator const& first, Iterator const&, signed char& attr)
         {
             attr = *first;
         }
@@ -47,7 +47,7 @@
     struct assign_to_attribute_from_iterators<unsigned char, Iterator>
     {
         static void
-        call(Iterator const& first, Iterator const& last, unsigned char& attr)
+        call(Iterator const& first, Iterator const&, unsigned char& attr)
         {
             attr = *first;
         }
@@ -58,7 +58,7 @@
     struct assign_to_attribute_from_iterators<wchar_t, Iterator>
     {
         static void
-        call(Iterator const& first, Iterator const& last, wchar_t& attr)
+        call(Iterator const& first, Iterator const&, wchar_t& attr)
         {
             attr = *first;
         }
@@ -70,7 +70,7 @@
     struct assign_to_attribute_from_iterators<unsigned short, Iterator>
     {
         static void
-        call(Iterator const& first, Iterator const& last, unsigned short& attr)
+        call(Iterator const& first, Iterator const&, unsigned short& attr)
         {
             attr = *first;
         }
Modified: trunk/boost/spirit/home/qi/nonterminal/grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/nonterminal/grammar.hpp	(original)
+++ trunk/boost/spirit/home/qi/nonterminal/grammar.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -97,7 +97,7 @@
         }
 
         template <typename Context>
-        info what(Context& context) const
+        info what(Context&) const
         {
             return info(name_);
         }
Modified: trunk/boost/spirit/home/support/attributes.hpp
==============================================================================
--- trunk/boost/spirit/home/support/attributes.hpp	(original)
+++ trunk/boost/spirit/home/support/attributes.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -881,12 +881,12 @@
     }
 
     template <typename A>
-    void swap_impl(A& a, unused_type)
+    void swap_impl(A&, unused_type)
     {
     }
 
     template <typename A>
-    void swap_impl(unused_type, A& a)
+    void swap_impl(unused_type, A&)
     {
     }
 
Modified: trunk/boost/spirit/home/support/iterators/detail/functor_input_policy.hpp
==============================================================================
--- trunk/boost/spirit/home/support/iterators/detail/functor_input_policy.hpp	(original)
+++ trunk/boost/spirit/home/support/iterators/detail/functor_input_policy.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -84,7 +84,7 @@
             }
 
             template <typename MultiPass>
-            static bool input_is_valid(MultiPass const& mp, value_type const& t) 
+            static bool input_is_valid(MultiPass const&, value_type const& t) 
             {
                 using namespace is_valid_test_;
                 return token_is_valid(t);
@@ -103,7 +103,7 @@
         template <typename Functor>
         struct shared
         {
-            explicit shared(Functor const& x) : curtok(0) {}
+            explicit shared(Functor const&) : curtok(0) {}
 
             typename Functor::result_type curtok;
         };
Modified: trunk/boost/spirit/home/support/iterators/detail/istream_policy.hpp
==============================================================================
--- trunk/boost/spirit/home/support/iterators/detail/istream_policy.hpp	(original)
+++ trunk/boost/spirit/home/support/iterators/detail/istream_policy.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -71,7 +71,7 @@
             }
 
             template <typename MultiPass>
-            static bool input_is_valid(MultiPass const& mp, value_type const& t) 
+            static bool input_is_valid(MultiPass const& mp, value_type const&) 
             {
                 return mp.shared()->initialized_;
             }
Modified: trunk/boost/spirit/home/support/utree/detail/utree_detail2.hpp
==============================================================================
--- trunk/boost/spirit/home/support/utree/detail/utree_detail2.hpp	(original)
+++ trunk/boost/spirit/home/support/utree/detail/utree_detail2.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -605,7 +605,7 @@
     template <typename F>
     stored_function<F>::~stored_function()
     {
-    };
+    }
 
     template <typename F>
     utree stored_function<F>::operator()(scope const& env) const
@@ -629,7 +629,7 @@
     template <typename F>
     referenced_function<F>::~referenced_function()
     {
-    };
+    }
 
     template <typename F>
     utree referenced_function<F>::operator()(scope const& env) const
@@ -1437,7 +1437,7 @@
         }
 
         template <typename From>
-        To dispatch(From const& val, boost::mpl::false_) const
+        To dispatch(From const&, boost::mpl::false_) const
         {
             // From is NOT convertible to To !!!
             boost::throw_exception(std::bad_cast());
@@ -1463,7 +1463,7 @@
         typedef T* result_type;
 
         template <typename From>
-        T* operator()(From const& val) const
+        T* operator()(From const&) const
         {
             // From is NOT convertible to T !!!
             boost::throw_exception(std::bad_cast());
Modified: trunk/boost/spirit/home/support/utree/operators.hpp
==============================================================================
--- trunk/boost/spirit/home/support/utree/operators.hpp	(original)
+++ trunk/boost/spirit/home/support/utree/operators.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -127,7 +127,7 @@
             return true;
         }
 
-        bool operator()(function_base const& a, function_base const& b) const
+        bool operator()(function_base const&, function_base const&) const
         {
             return false; // just don't allow comparison of functions
         }
@@ -185,13 +185,13 @@
             return false; // no less than comparison for nil
         }
 
-        bool operator()(any_ptr const& a, any_ptr const& b) const
+        bool operator()(any_ptr const&, any_ptr const&) const
         {
             boost::throw_exception(bad_type_exception());
             return false; // no less than comparison for any_ptr
         }
 
-        bool operator()(function_base const& a, function_base const& b) const
+        bool operator()(function_base const&, function_base const&) const
         {
             boost::throw_exception(bad_type_exception());
             return false; // no less than comparison of functions
@@ -269,12 +269,12 @@
             (*this)(')');
         }
 
-        void operator()(any_ptr const& p) const
+        void operator()(any_ptr const&) const
         {
             return (*this)("<pointer>");
         }
 
-        void operator()(function_base const& pf) const
+        void operator()(function_base const&) const
         {
             return (*this)("<function>");
         }
@@ -305,21 +305,21 @@
 
         // binary
         template <typename A, typename B>
-        utree dispatch(A const& a, B const& b, mpl::false_, mpl::true_) const
+        utree dispatch(A const&, B const& b, mpl::false_, mpl::true_) const
         {
             return Base::eval(true, b);
         }
 
         // binary
         template <typename A, typename B>
-        utree dispatch(A const& a, B const& b, mpl::true_, mpl::false_) const
+        utree dispatch(A const& a, B const&, mpl::true_, mpl::false_) const
         {
             return Base::eval(a, true);
         }
 
         // binary
         template <typename A, typename B>
-        utree dispatch(A const& a, B const& b, mpl::false_, mpl::false_) const
+        utree dispatch(A const&, B const&, mpl::false_, mpl::false_) const
         {
             return Base::eval(true, true);
         }
@@ -340,7 +340,7 @@
 
         // unary
         template <typename A>
-        utree dispatch(A const& a, mpl::false_) const
+        utree dispatch(A const&, mpl::false_) const
         {
             return Base::eval(true);
         }
@@ -512,33 +512,33 @@
         return out;
     }
 
-    inline std::ostream& operator<<(std::ostream& out, utree::invalid_type const& x)
+    inline std::ostream& operator<<(std::ostream& out, utree::invalid_type const&)
     {
         return out;
     }
 
-    inline std::ostream& operator<<(std::ostream& out, utree::nil_type const& x)
+    inline std::ostream& operator<<(std::ostream& out, utree::nil_type const&)
     {
         return out;
     }
 
-    BOOST_SPIRIT_UTREE_CREATE_LOGICAL_FUNCTION(and_, a&&b);
-    BOOST_SPIRIT_UTREE_CREATE_LOGICAL_FUNCTION(or_, a||b);
-    BOOST_SPIRIT_UTREE_CREATE_LOGICAL_FUNCTION(not_, !a);
-
-    BOOST_SPIRIT_UTREE_CREATE_ARITHMETIC_FUNCTION(plus, a+b);
-    BOOST_SPIRIT_UTREE_CREATE_ARITHMETIC_FUNCTION(minus, a-b);
-    BOOST_SPIRIT_UTREE_CREATE_ARITHMETIC_FUNCTION(times, a*b);
-    BOOST_SPIRIT_UTREE_CREATE_ARITHMETIC_FUNCTION(divides, a/b);
-    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(modulus, a%b);
-    BOOST_SPIRIT_UTREE_CREATE_ARITHMETIC_FUNCTION(negate, -a);
-
-    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(bitand_, a&b);
-    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(bitor_, a|b);
-    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(bitxor_, a^b);
-    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(shift_left, a<<b);
-    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(shift_right, a>>b);
-    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(invert, ~a);
+    BOOST_SPIRIT_UTREE_CREATE_LOGICAL_FUNCTION(and_, a&&b)
+    BOOST_SPIRIT_UTREE_CREATE_LOGICAL_FUNCTION(or_, a||b)
+    BOOST_SPIRIT_UTREE_CREATE_LOGICAL_FUNCTION(not_, !a)
+
+    BOOST_SPIRIT_UTREE_CREATE_ARITHMETIC_FUNCTION(plus, a+b)
+    BOOST_SPIRIT_UTREE_CREATE_ARITHMETIC_FUNCTION(minus, a-b)
+    BOOST_SPIRIT_UTREE_CREATE_ARITHMETIC_FUNCTION(times, a*b)
+    BOOST_SPIRIT_UTREE_CREATE_ARITHMETIC_FUNCTION(divides, a/b)
+    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(modulus, a%b)
+    BOOST_SPIRIT_UTREE_CREATE_ARITHMETIC_FUNCTION(negate, -a)
+
+    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(bitand_, a&b)
+    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(bitor_, a|b)
+    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(bitxor_, a^b)
+    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(shift_left, a<<b)
+    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(shift_right, a>>b)
+    BOOST_SPIRIT_UTREE_CREATE_INTEGRAL_FUNCTION(invert, ~a)
 
     inline utree operator&&(utree const& a, utree const& b)
     {
Modified: trunk/boost/spirit/home/support/utree/utree.hpp
==============================================================================
--- trunk/boost/spirit/home/support/utree/utree.hpp	(original)
+++ trunk/boost/spirit/home/support/utree/utree.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -175,7 +175,7 @@
     //[utree_function_object_interface
     struct function_base
     {
-        virtual ~function_base() {};
+        virtual ~function_base() {}
         virtual utree operator()(scope const& env) const = 0;
 
         // Calling f.clone() must return a newly allocated function_base 
Modified: trunk/boost/spirit/home/support/utree/utree_traits.hpp
==============================================================================
--- trunk/boost/spirit/home/support/utree/utree_traits.hpp	(original)
+++ trunk/boost/spirit/home/support/utree/utree_traits.hpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -1154,7 +1154,7 @@
     {
         typedef utree::nil_type type;
 
-        static type pre(utree const& t)
+        static type pre(utree const&)
         {
             return nil;
         }
Modified: trunk/libs/spirit/test/karma/regression_real_scientific.cpp
==============================================================================
--- trunk/libs/spirit/test/karma/regression_real_scientific.cpp	(original)
+++ trunk/libs/spirit/test/karma/regression_real_scientific.cpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -19,7 +19,7 @@
 struct scientific_policy : karma::real_policies<Num>
 {
     // we want the numbers always to be in scientific format
-    static int floatfield(Num n) { return std::ios_base::scientific; }
+    static int floatfield(Num) { return std::ios_base::scientific; }
 };
 
 int main() 
Modified: trunk/libs/spirit/test/lex/string_token_id.cpp
==============================================================================
--- trunk/libs/spirit/test/lex/string_token_id.cpp	(original)
+++ trunk/libs/spirit/test/lex/string_token_id.cpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -49,7 +49,7 @@
 struct word_count_grammar : qi::grammar<Iterator>
 {
     template <typename TokenDef>
-    word_count_grammar(TokenDef const& tok)
+    word_count_grammar(TokenDef const&)
       : word_count_grammar::base_type(start)
       , w(0), c(0), a(0)
     {
Modified: trunk/libs/spirit/test/qi/grammar.cpp
==============================================================================
--- trunk/libs/spirit/test/qi/grammar.cpp	(original)
+++ trunk/libs/spirit/test/qi/grammar.cpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -78,7 +78,7 @@
 struct num_list3 : grammar<Iterator, Skipper>
 {
     template <typename Class>
-    num_list3(Class& self) : grammar<Iterator, Skipper>(start)
+    num_list3(Class&) : grammar<Iterator, Skipper>(start)
     {
         using boost::spirit::int_;
         num = int_;
Modified: trunk/libs/spirit/test/qi/regression_clear.cpp
==============================================================================
--- trunk/libs/spirit/test/qi/regression_clear.cpp	(original)
+++ trunk/libs/spirit/test/qi/regression_clear.cpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -19,7 +19,7 @@
     list = *qi::raw[qi::char_]; // This fails to compile
     
     char const* test = "abcdef";
-    int test_length = 6;
+    unsigned test_length = 6;
     char const* test_begin = test;
     char const* test_end = test + test_length;
     std::vector<boost::iterator_range<Iterator> > result;
@@ -29,7 +29,7 @@
     BOOST_TEST(test_begin == test_end);
     BOOST_TEST(result.size() == test_length);
 
-    for(int i = 0; i < test_length; ++i) {
+    for(unsigned i = 0; i < test_length; ++i) {
         BOOST_TEST(result[i].begin() == test + i);
         BOOST_TEST(result[i].end() == test + i + 1);
     }
Modified: trunk/libs/spirit/test/qi/regression_transform_assignment.cpp
==============================================================================
--- trunk/libs/spirit/test/qi/regression_transform_assignment.cpp	(original)
+++ trunk/libs/spirit/test/qi/regression_transform_assignment.cpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -59,7 +59,7 @@
     qi::rule<Iterator, foo_parts()> start;
 };
 
-int main(int argc, char * argv[]) 
+int main() 
 {
     foo_parts instance;
     foo_grammar<std::string::iterator> grammar;
Modified: trunk/libs/spirit/test/support/regression_multi_pass_functor.cpp
==============================================================================
--- trunk/libs/spirit/test/support/regression_multi_pass_functor.cpp	(original)
+++ trunk/libs/spirit/test/support/regression_multi_pass_functor.cpp	2011-03-26 19:48:38 EDT (Sat, 26 Mar 2011)
@@ -85,7 +85,7 @@
 
 // ======================================================================       
 // Main                                                                         
-int main(int argc, char** argv) 
+int main() 
 {
     std::ifstream in("multi_pass.txt");