[sigc] test_lambda VC71



test_lambda.cc does not compile under Visual Studio 2003.

I got the newest test_lambda.cc from the cvs  server with the 2.0 libsic release package.

Any idea what migth be wrong?

The error messages are these:
------ Build started: Project: test_lambda, Configuration: Debug Win32 ------

Compiling...
test_lambda.cc
c:\dev\libsigc\libsigc++-2.0.17\sigc++\adaptors\lambda\operator.h(181) : error C2664: 'sigc::reference_wrapper<T_type>::reference_wrapper(const sigc::reference_wrapper<T_type> &)' : cannot convert parameter 1 from 'sigc::lambda_operator<T_action,T_type1,T_type2>::deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::right_type' to 'const sigc::reference_wrapper<T_type> &'
        with
        [
            T_type=int
        ]
        and
        [
            T_action=sigc::arithmetic<sigc::multiplies>,
            T_type1=sigc::lambda_operator_unary<sigc::unary_arithmetic<sigc::pre_increment>,sigc::internal::lambda_select1>,
            T_type2=int,
            T_arg1=sigc::type_trait<sigc::reference_wrapper<int>>::pass,
            T_arg2=sigc::type_trait<void>::pass,
            T_arg3=sigc::type_trait<void>::pass,
          & nbsp; T_arg4=sigc::type_trait<void>::pass,
            T_arg5=sigc::type_trait<void>::pass,
            T_arg6=sigc::type_trait<void>::pass,
            T_arg7=sigc::type_trait<void>::pass
        ]
        and
        [
            T_type=int
        ]
        Reason: cannot convert from 'sigc::lambda_operator<T_action,T_type1,T_type2>::deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::right_type' to 'const sigc::reference_wrapper<T_type>'
        with
        [
            T_action=sigc::arithmetic<sigc::multiplies>,
            T_type1=sigc::lambda_operator_unary<sigc::unary_arithmetic<sigc::pre_increment>,sigc::internal::lambda_select1>,
            T_type2=int,
            T_arg1=sigc::type_trait<sigc::reference_wrapper<int>>::pass,
            T_arg2=sigc::type_trait<void>::pass,
            T_arg3=sigc::type_trait<void>::pass,
            T_arg4=sigc::type_trait<void>::pass,
            T_arg5=sigc::type_trait<void>::pass,
            T_arg6=sigc::type_trait<void>::pass,
            T_arg7=sigc::type_trait<void>::pass
        ]
        and
        [
            T_type=int
        ]
        No constructor could take the source type, or constructor overload resolution was ambiguous
        c:\dev\libsigc\libsigc++-2.0.17\sigc++\adaptors\lambda\operator.h(552) : see reference to function template instantiation 'sigc::lambda_action_deduce_result_type<T_action,T_test1,T_test2>::type sigc::lambda_action<sigc::arithmetic<T_type>>::do_action<sigc::lambda_operator<T_action,T_type1,T_type2>::deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::left_type,sigc::lambda_operator<T_action,T_type1,T_type2>::deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::right_type>(sigc::reference_wrapper<int>,int)' being compiled
        with
        [
            T_action=sigc::arithmetic<sigc::multiplies>,
            T_test1=sigc::lambda_operator<sigc::arithmetic<sigc::multiplies>,sigc::lambda_operator_unary<sigc::unary_arithmetic<sigc::pre_increment>,sigc::internal::lambda_select1>,int>::deduce_result_type<sigc::type_trait<sigc::reference_wrapper<int>>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>:
:pass>::left_type,
            T_test2=sigc::lambda_operator<sigc::arithmetic<sigc::multiplies>,sigc::lambda_operator_unary<sigc::unary_arithmetic<sigc::pre_increment>,sigc::internal::lambda_select1>,int>::deduce_result_type<sigc::type_trait<sigc::reference_wrapper<int>>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass>::right_type,
            T_type=sigc::multiplies,
            T_type1=sigc::lambda_operator_unary<sigc::unary_arithmetic<sigc::pre_increment>,sigc::internal::lambda_select1>,
            T_type2=int,
            T_arg1=sigc::type_trait<sigc::reference_wrapper<int>>::pass,
            T_arg2=sigc::type_trait<void>::pass,
            T_arg3=sigc::type_trait<void>::pass,
            T_arg4=sigc::type_trait<void>::pass,
            T_arg5=sigc::type_trait<void>::pass,
            T_arg6=sigc::type_trait<void>::pass,
            T_arg7=sigc::type_trait<void>::pass
        ]
        c:\dev\libsigc\libsigc++-2.0.17\sigc++\adaptors\lambda\base.h(70) : see reference to function template instantiation 'sigc::lambda_operator<T_action,T_type1,T_type2>::deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::type sigc::lambda_operator<T_action,T_type1,T_type2>::operator ()<sigc::type_trait<T_type>::pass>(T_arg1) const' being compiled
        with
        [
            T_action=sigc::arithmetic<sigc::multiplies>,
            T_type1=sigc::lambda_operator_unary<sigc::unary_arithmetic<sigc::pre_increment>,sigc::internal::lambda_select1>,
            T_type2=int,
            T_arg1=sigc::type_trait<sigc::reference_wrapper<int>>::pass,
            T_arg2=sigc::type_trait<void>::pass,
            T_arg3=sigc::type_trait<void>::pass,
            T_arg4=sigc::type_trait<void>::pass,
            T_arg5=sigc::type_trait<void>::pass,
            T_arg6=sigc::type_trait<void>::pass,
            T_arg7=sigc::type_trait<void>::pass,
            T_type=sigc::reference_wrapper<int>
 
       ]
        c:\dev\libsigc\libsigc++-2.0.17\tests\test_lambda.cc(73) : see reference to function template instantiation 'sigc::internal::lambda_core<T_type>::deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::type sigc::internal::lambda_core<T_type>::operator ()<sigc::reference_wrapper<int>>(T_arg1) const' being compiled
        with
        [
            T_type=sigc::lambda_operator<sigc::arithmetic<sigc::multiplies>,sigc::lambda_operator_unary<sigc::unary_arithmetic<sigc::pre_increment>,sigc::internal::lambda_select1>,int>,
            T_arg1=sigc::reference_wrapper<int>,
            T_arg2=void,
            T_arg3=void,
            T_arg4=void,
            T_arg5=void,
            T_arg6=void,
            T_arg7=void
        ]
c:\dev\libsigc\libsigc++-2.0.17\sigc++\adaptors\lambda\operator.h(181) : error C2553: no legal conversion of return value to return type 'sigc::lambda_action_deduce_result_type<T_action,T_test1,T_test2>::type'
        with
        [
            T_action=sigc::arithmetic<sigc::multiplies>,
            T_test1=sigc::lambda_operator<sigc::arithmetic<sigc::multiplies>,sigc::lambda_operator_unary<sigc::unary_arithmetic<sigc::pre_increment>,sigc::internal::lambda_select1>,int>::deduce_result_type<sigc::type_trait<sigc::reference_wrapper<int>>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass>::left_type,
            T_test2=sigc::lambda_operator<sigc::arithmetic<sigc::multiplies>,sigc::lambda_operator_unary<sigc::unary_arithmetic<sigc::pre_increment>,sigc::internal::lambda_select1>,int>::deduce_result_type<sigc::type_trait<sigc::reference_wrapper<int>>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass,sigc::type_trait<void>::pass>::right_type
        ]

Build Time 0:00
Build log was saved at "file://c:\dev\libsigc\libsigc++-2.0.17\MSVC_Net2003\tests\test_lambda\Debug\BuildLog.htm"
test_lambda - 2 error(s), 0 warning(s)



Lars


Yahoo! Photos
Got holiday prints? See all the ways to get quality prints in your hands ASAP.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]