Use of GCC command line options '-W -Wall' causes warnings from libsigc++ header files about unused parameters (for operator()) in several places when recent GCC versions like gcc-4.0.0 is being used.
This is a small nuisance in one uses -W -Wall -Werror to get rid of warnings. Included patch (against libsigc++-2.0.13) fixes this problem (at least all such warnings, which I have encountered). Andris 2005-06-11 Andris Pavenis <[EMAIL PROTECTED]> *sigc++/adaptors/lambda/macros/base.h.m4: *sigc++/adaptors/lambda/macros/select.h.m4 * sigc++/adaptors/macros/hide.h.m4: Specify only a type (not a parameter name) for unused member function parameters
diff -ur3 libsigc++-2.0.13.orig/sigc++/adaptors/lambda/macros/base.h.m4 libsigc++-2.0.13/sigc++/adaptors/lambda/macros/base.h.m4 --- libsigc++-2.0.13.orig/sigc++/adaptors/lambda/macros/base.h.m4 2005-05-10 13:39:56.000000000 +0000 +++ libsigc++-2.0.13/sigc++/adaptors/lambda/macros/base.h.m4 2005-06-11 15:45:32.000000000 +0000 @@ -37,12 +37,12 @@ ])dnl define([LAMBDA_DO_VALUE],[dnl template <LOOP(class T_arg%1, $1)> - result_type operator ()(LOOP(T_arg%1 _A_%1, $1)) const + result_type operator ()(LOOP(T_arg%1, $1)) const { return value_; } #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD template <LOOP(class T_arg%1, $1)> - result_type sun_forte_workaround(LOOP(T_arg%1 _A_%1, $1)) const + result_type sun_forte_workaround(LOOP(T_arg%1, $1)) const { return value_; } #endif //SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD diff -ur3 libsigc++-2.0.13.orig/sigc++/adaptors/lambda/macros/select.h.m4 libsigc++-2.0.13/sigc++/adaptors/lambda/macros/select.h.m4 --- libsigc++-2.0.13.orig/sigc++/adaptors/lambda/macros/select.h.m4 2004-08-03 17:58:20.000000000 +0000 +++ libsigc++-2.0.13/sigc++/adaptors/lambda/macros/select.h.m4 2005-06-11 15:45:32.000000000 +0000 @@ -21,12 +21,13 @@ dnl Macros to make select arguments define([LAMBDA_SELECT_DO],[dnl template <LOOP(class T_arg%1, $2)> - T_arg$1 operator ()(LOOP(T_arg%1 _A_%1, $2)) const { return _A_$1; } +dnl T_arg$1 operator ()(LOOP(T_arg%1 _A_%1, $2)) const { return _A_$1; } + T_arg$1 operator ()(LIST(FOR(1,eval($1-1),[T_arg%1,]),T_arg$1 _A_$1,FOR(eval($1+1),$2,[T_arg%1,]))) const { return _A_$1; } #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD template <LOOP(class T_arg%1, $2)> //Does not work: T_arg$1 sun_forte_workaround(LOOP(T_arg%1 _A_%1, $2)) const { return operator()( LOOP(_A_%1, $2) ); } - T_arg$1 sun_forte_workaround(LOOP(T_arg%1 _A_%1, $2)) const { return _A_$1; } + T_arg$1 sun_forte_workaround(LIST(FOR(1,eval($1-1),[T_arg%1,]),T_arg$1 _A_$1,FOR(eval($1+1),$2,[T_arg%1,]))) const { return _A_$1; } #endif ]) diff -ur3 libsigc++-2.0.13.orig/sigc++/adaptors/macros/hide.h.m4 libsigc++-2.0.13/sigc++/adaptors/macros/hide.h.m4 --- libsigc++-2.0.13.orig/sigc++/adaptors/macros/hide.h.m4 2005-02-01 11:02:20.000000000 +0000 +++ libsigc++-2.0.13/sigc++/adaptors/macros/hide.h.m4 2005-06-11 15:45:32.000000000 +0000 @@ -36,7 +36,7 @@ */ template <class T_arg1> typename deduce_result_type<T_arg1>::type - operator()(T_arg1 _A_a1) + operator()(T_arg1) { return this->functor_(); } #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD @@ -55,14 +55,14 @@ */ template <LOOP([class T_arg%1], $2)> typename deduce_result_type<LOOP(T_arg%1, $2)>::type - operator()(LOOP(T_arg%1 _A_a%1, $2)) + operator()(LOOP(T_arg%1 _A_a%1, eval($2-1)), T_arg$2) { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<LIST(FOR(1,eval($2-1),[_P_(T_arg%1),]))> (LIST(FOR(1,eval($2-1),[_A_a%1,]))); } #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD template <LOOP([class T_arg%1], $2)> typename deduce_result_type<LOOP(T_arg%1, $2)>::type - sun_forte_workaround(LOOP(T_arg%1 _A_a%1, $2)) + sun_forte_workaround(LOOP(T_arg%1 _A_a%1, eval($2-1)), T_arg$2) { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<LIST(FOR(1,eval($2-1),[_P_(T_arg%1),]))> (LIST(FOR(1,eval($2-1),[_A_a%1,]))); } #endif @@ -78,14 +78,14 @@ */ template <LOOP([class T_arg%1], $2)> typename deduce_result_type<LOOP(T_arg%1, $2)>::type - operator()(LOOP(T_arg%1 _A_a%1, $2)) + operator()(LIST(FOR(1,eval($1-1),[T_arg%1 _A_a%1,]),T_arg$1,FOR(eval($1+1),$2,[T_arg%1 _A_a%1,]))) { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<LIST(FOR(1,eval($1-1),[_P_(T_arg%1),]),FOR(eval($1+1), $2,[_P_(T_arg%1),]))> (LIST(FOR(1,eval($1-1),[_A_a%1,]),FOR(eval($1+1),$2,[_A_a%1,]))); } #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD template <LOOP([class T_arg%1], $2)> typename deduce_result_type<LOOP(T_arg%1, $2)>::type - sun_forte_workaround(LOOP(T_arg%1 _A_a%1, $2)) + sun_forte_workaround(LIST(FOR(1,eval($1-1),[T_arg%1 _A_a%1,]),T_arg$1,FOR(eval($1+1),$2,[T_arg%1 _A_a%1,])) { return this->functor_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<LIST(FOR(1,eval($1-1),[_P_(T_arg%1),]),FOR(eval($1+1), $2,[_P_(T_arg%1),]))> (LIST(FOR(1,eval($1-1),[_A_a%1,]),FOR(eval($1+1),$2,[_A_a%1,]))); } #endif
_______________________________________________ libsigc-list mailing list libsigc-list@gnome.org http://mail.gnome.org/mailman/listinfo/libsigc-list