Le 16/10/2013 13:47, Mathias Gaunard a écrit :
Is that the full error message? It's not very explicit.
Making error messages better is something we've been working on, and
apparently we still have some way to go.
Nop, this was just the short version by VS 2012. Below the full error,
which I don't find very explicit either :)
The fixed version now works fine.
main.cpp
1>c:\users\otristan\code\boost\boost\simd\operator\functions\simd\common\preprocessed\map.hpp(58):
error C2039: 'type' : is not a member of
'boost::dispatch::meta::result_of<Sig>'
1> with
1> [
1> Sig=const
boost::dispatch::functorboost::simd::tag::multiplies_ (float,int)
1> ]
1>
c:\users\otristan\code\boost\boost\dispatch\functor\meta\preprocessed\call.hpp(14)
: see reference to class template instantiation
'boost::simd::ext::implement' being compiled
1> with
1> [
1> Sig=boost::simd::tag::map_
(boost::dispatch::meta::unspecified_boost::simd::tag::multiplies_>,boost::dispatch::meta::generic_,boost::dispatch::meta::generic_),
1> Site=boost::dispatch::tag::cpu_,
1> Enable=void
1> ]
1>
c:\users\otristan\code\boost\boost\simd\operator\specific\preprocessed\common.hpp(87)
: see reference to class template instantiation
'boost::dispatch::meta::call<Sig>' being compiled
1> with
1> [
1> Sig=boost::simd::tag::map_
(boost::dispatch::functorboost::simd::tag::multiplies_,const float
&,const int &)
1> ]
1>
c:\users\otristan\code\boost\boost\simd\operator\specific\preprocessed\common.hpp(97)
: see reference to class template instantiation
'boost::simd::ext::implement::splat_or_map<B>' being
compiled
1> with
1> [
1>
Sig=boost::dispatch::meta::elementwise_boost::simd::tag::multiplies_
(boost::dispatch::meta::unspecified_<float>,boost::dispatch::meta::unspecified_<int>),
1> Site=boost::dispatch::tag::formal_,
1> Enable=void,
1> B=false
1> ]
1>
c:\users\otristan\code\boost\boost\dispatch\functor\preprocessed\functor0x.hpp(29)
: see reference to class template instantiation
'boost::simd::ext::implement' being compiled
1> with
1> [
1>
Sig=boost::dispatch::meta::elementwise_boost::simd::tag::multiplies_
(boost::dispatch::meta::unspecified_<float>,boost::dispatch::meta::unspecified_<int>),
1> Site=boost::dispatch::tag::formal_,
1> Enable=void
1> ]
1>
c:\users\otristan\code\boost\boost\simd\operator\functions\simd\common\preprocessed\map.hpp(58)
: see reference to class template instantiation
'boost::dispatch::functor<Tag>::result<Sig>' being compiled
1> with
1> [
1> Tag=boost::simd::tag::multiplies_,
1> Sig=const
boost::dispatch::functorboost::simd::tag::multiplies_ (float,int)
1> ]
1>
c:\users\otristan\code\boost\boost\dispatch\functor\meta\preprocessed\call.hpp(14)
: see reference to class template instantiation
'boost::simd::ext::implement' being compiled
1> with
1> [
1> Sig=boost::simd::tag::map_
(boost::dispatch::meta::unspecified_boost::simd::tag::multiplies_>,boost::dispatch::meta::generic_>>,boost::dispatch::meta::generic_>>),
1> Site=boost::dispatch::tag::cpu_,
1> Enable=void
1> ]
1>
c:\users\otristan\code\boost\boost\simd\operator\specific\preprocessed\common.hpp(87)
: see reference to class template instantiation
'boost::dispatch::meta::call<Sig>' being compiled
1> with
1> [
1> Sig=boost::simd::tag::map_
(boost::dispatch::functorboost::simd::tag::multiplies_,const
boost::simd::native &,const
boost::simd::native &)
1> ]
1>
c:\users\otristan\code\boost\boost\simd\operator\specific\preprocessed\common.hpp(97)
: see reference to class template instantiation
'boost::simd::ext::implement::splat_or_map<B>' being
compiled
1> with
1> [
1>
Sig=boost::dispatch::meta::elementwise_boost::simd::tag::multiplies_
(boost::dispatch::meta::unspecified_>,boost::dispatch::meta::unspecified_>),
1> Site=boost::dispatch::tag::formal_,
1> Enable=void,
1> B=false
1> ]
1>
c:\users\otristan\code\boost\boost\simd\operator\specific\preprocessed\common.hpp(72)
: see reference to class template instantiation
'boost::simd::ext::implement' being compiled
1> with
1> [
1>
Sig=boost::dispatch::meta::elementwise_boost::simd::tag::multiplies_
(boost::dispatch::meta::unspecified_>,boost::dispatch::meta::unspecified_>),
1> Site=boost::dispatch::tag::formal_,
1> Enable=void
1> ]
1>
c:\users\otristan\code\boost\boost\simd\operator\specific\preprocessed\common.hpp(97)
: see reference to class template instantiation
'boost::simd::ext::implement::splat_or_map<B>' being
compiled
1> with
1> [
1>
Sig=boost::dispatch::meta::elementwise_boost::simd::tag::multiplies_
(boost::dispatch::meta::unspecified_>,boost::dispatch::meta::unspecified_<int>),
1> Site=boost::dispatch::tag::formal_,
1> Enable=void,
1> B=true
1> ]
1>
c:\users\otristan\code\boost\boost\dispatch\functor\meta\preprocessed\call.hpp(9)
: see reference to class template instantiation
'boost::simd::ext::implement' being compiled
1> with
1> [
1>
Sig=boost::dispatch::meta::elementwise_boost::simd::tag::multiplies_
(boost::dispatch::meta::unspecified_>,boost::dispatch::meta::unspecified_<int>),
1> Site=boost::dispatch::tag::formal_,
1> Enable=void
1> ]
1>
c:\users\otristan\code\boost\boost\simd\sdk\dsl\typed_expression.hpp(56)
: see reference to class template instantiation
'boost::dispatch::meta::call<Sig>' being compiled
1> with
1> [
1> Sig=boost::proto::tagns_::tag::multiplies
(boost::simd::native,int)
1> ]
1>
c:\users\otristan\code\boost\boost\simd\sdk\dsl\typed_expression.hpp(29)
: see reference to class template instantiation
'boost::simd::meta::typed_expression<Lambda>::apply_impl' being
compiled
1> with
1> [
1> Lambda=boost::simd::details::mpl_2,
1>
Expr=boost::proto::exprns_::exprboost::simd::tag::multiplies_::type,boost::proto::argsns_::list2boost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native>,boost::simd::expression,int>>,2>,
1> N=2
1> ]
1>
c:\users\otristan\code\boost\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(39)
: see reference to class template instantiation
'boost::simd::meta::typed_expression<Lambda>::apply<Expr>' being compiled
1> with
1> [
1> Lambda=boost::simd::details::mpl_2,
1>
Expr=boost::proto::exprns_::exprboost::simd::tag::multiplies_::type,boost::proto::argsns_::list2boost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native>,boost::simd::expression,int>>,2>
1> ]
1>
c:\users\otristan\code\boost\boost\mpl\aux_\preprocessed\plain\apply.hpp(43)
: see reference to class template instantiation
'boost::mpl::apply_wrap1' being compiled
1> with
1> [
1> F=boost::simd::meta::typed_expressionboost::simd::details::mpl_2,
1>
T1=boost::proto::exprns_::exprboost::simd::tag::multiplies_::type,boost::proto::argsns_::list2boost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native>,boost::simd::expression,int>>,2>
1> ]
1>
c:\users\otristan\code\boost\boost\simd\sdk\simd\pack\generator.hpp(43)
: see reference to class template instantiation
'boost::mpl::apply1' being compiled
1> with
1> [
1> F=boost::simd::meta::typed_expressionboost::simd::details::mpl_2,
1>
T1=boost::proto::exprns_::exprboost::simd::tag::multiplies_::type,boost::proto::argsns_::list2boost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native>,boost::simd::expression,int>>,2>
1> ]
1> c:\users\otristan\code\boost\boost\proto\transform\impl.hpp(239) :
see reference to class template instantiation
'boost::simd::generator::impl' being compiled
1> with
1> [
1>
Expr=boost::proto::exprns_::exprboost::simd::tag::multiplies_::type,boost::proto::argsns_::list2boost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native>,boost::simd::expression,int>>,2>,
1> State=boost::proto::envns_::empty_state,
1> Data=boost::proto::envns_::empty_env
1> ]
1> c:\users\otristan\code\boost\boost\proto\transform\impl.hpp(255) :
see reference to class template instantiation
'boost::proto::detail::apply_transform<Sig>' being compiled
1> with
1> [
1> Sig=boost::simd::generator
(boost::proto::exprns_::exprboost::simd::tag::multiplies_::type,boost::proto::argsns_::list2boost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native>,boost::simd::expression,int>>,2>)
1> ]
1>
c:\users\otristan\code\boost\boost\proto\detail\preprocessed\make_expr_.hpp(73)
: see reference to class template instantiation
'boost::proto::transform<PrimitiveTransform>::result<Sig>' being compiled
1> with
1> [
1> PrimitiveTransform=boost::simd::generator,
1> Sig=boost::simd::generator
(boost::proto::exprns_::exprboost::simd::tag::multiplies_::type,boost::proto::argsns_::list2boost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native>,boost::simd::expression,int>>,2>)
1> ]
1>
c:\users\otristan\code\boost\boost\proto\detail\preprocessed\make_expr_.hpp(91)
: see reference to class template instantiation
'boost::proto::detail::make_expr_' being compiled
1> with
1> [
1>
Tag=boost::dispatch::meta::proto_tagboost::simd::tag::multiplies_::type,
1> Domain=boost::simd::domain,
1> A0=const
boost::simd::expressionboost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native> &,
1> A1=const int &
1> ]
1> c:\users\otristan\code\boost\boost\proto\make_expr.hpp(136) : see
reference to class template instantiation
'boost::proto::detail::make_expr_'
being compiled
1> with
1> [
1>
Tag=boost::dispatch::meta::proto_tagboost::simd::tag::multiplies_::type,
1> Domain=boost::proto::domainns_::deduce_domain,
1> A0=const
boost::simd::expressionboost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native> &,
1> A1=const int &,
1> A2=void,
1> A3=void,
1> A4=void,
1> A5=void,
1> A6=void,
1> A7=void,
1> A8=void,
1> A9=void
1> ]
1>
c:\users\otristan\code\boost\boost\dispatch\dsl\preprocessed\call.hpp(39) :
see reference to class template instantiation
'boost::proto::result_of::make_expr' being compiled
1> with
1> [
1>
Tag=boost::dispatch::meta::proto_tagboost::simd::tag::multiplies_::type,
1> A0=const
boost::simd::expressionboost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native> &,
1> A1=const int &
1> ]
1>
c:\users\otristan\code\boost\boost\dispatch\functor\meta\preprocessed\call.hpp(9)
: see reference to class template instantiation
'boost::dispatch::meta::implement::result<Sig>'
being compiled
1> with
1> [
1> Signature=boost::simd::tag::multiplies_
(boost::dispatch::tag::ast_),
1> Site=boost::dispatch::tag::formal_,
1> Dummy=void,
1>
Sig=boost::dispatch::meta::dispatch_callboost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native> &,const int
&),void>::type (const
boost::simd::expressionboost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native> &,const int &)
1> ]
1> c:\users\otristan\code\boost\boost\utility\enable_if.hpp(40) : see
reference to class template instantiation
'boost::dispatch::meta::call' being compiled
1> with
1> [
1> Sig=boost::proto::tagns_::tag::multiplies (const
boost::simd::expressionboost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native> &,const int &),
1> EvalContext=void
1> ]
1> c:\users\otristan\code\boost\boost\utility\enable_if.hpp(47) : see
reference to class template instantiation 'boost::lazy_enable_if_c'
being compiled
1> with
1> [
1> B=true,
1> T=boost::dispatch::meta::callboost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native> &,const int
&),void>
1> ]
1> c:\users\otristan\code\tmp\testsimd\test\main.cpp(13) : see
reference to class template instantiation
'boost::lazy_enable_if' being compiled
1> with
1> [
1>
Cond=boost::mpl::and_boost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native>>,boost::simd::is_value<int>,boost::mpl::true_,boost::mpl::true_,boost::mpl::true_>,
1> T=boost::dispatch::meta::callboost::simd::tag::plus_::type,boost::proto::argsns_::list2 &>>,const
boost::simd::native
&>,boost::simd::expression &>>,const
boost::simd::native
&>>,2>,boost::simd::native> &,const int
&),void>
1> ]
1>c:\users\otristan\code\boost\boost\simd\operator\functions\simd\common\preprocessed\map.hpp(59):
error C2146: syntax error : missing ';' before identifier 'rtype'
1>c:\users\otristan\code\boost\boost\simd\operator\functions\simd\common\preprocessed\map.hpp(59):
error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
1>c:\users\otristan\code\boost\boost\simd\operator\functions\simd\common\preprocessed\map.hpp(63):
error C2065: 'rtype' : undeclared identifier
1>c:\users\otristan\code\boost\boost\simd\operator\functions\simd\common\preprocessed\map.hpp(64):
error C2923: 'boost::simd::meta::vector_of' : 'rtype' is not a valid
template type argument for parameter 'T'
1>c:\users\otristan\code\boost\boost\simd\operator\functions\simd\common\preprocessed\map.hpp(64):
error C2955: 'boost::simd::meta::vector_of' : use of class template
requires template argument list
1>
c:\users\otristan\code\boost\boost\simd\sdk\simd\meta\vector_of.hpp(124)
: see declaration of 'boost::simd::meta::vector_of'
1>c:\users\otristan\code\boost\boost\simd\operator\specific\preprocessed\common.hpp(87):
error C2039: 'type' : is not a member of 'boost::dispatch::meta::call<Sig>'
1> with
1> [
1> Sig=boost::simd::tag::map_
(boost::dispatch::functorboost::simd::tag::multiplies_,const float
&,const int &)
1> ]
1>c:\users\otristan\code\boost\boost\simd\operator\specific\preprocessed\common.hpp(88):
error C2146: syntax error : missing ';' before identifier 'type'
1>c:\users\otristan\code\boost\boost\simd\operator\specific\preprocessed\common.hpp(88):
error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
1>c:\users\otristan\code\boost\boost\simd\operator\specific\preprocessed\common.hpp(88):
error C2602:
'boost::simd::ext::implement::splat_or_map<B>::type' is
not a member of a base class of
'boost::simd::ext::implement::splat_or_map<B>'
1> with
1> [
1>
Sig=boost::dispatch::meta::elementwise_boost::simd::tag::multiplies_
(boost::dispatch::meta::unspecified_<float>,boost::dispatch::meta::unspecified_<int>),
1> Site=boost::dispatch::tag::formal_,
1> Enable=void,
1> B=false
1> ]
1>
c:\users\otristan\code\boost\boost\simd\operator\specific\preprocessed\common.hpp(88)
: see declaration of
'boost::simd::ext::implement::splat_or_map<B>::type'
1> with
1> [
1>
Sig=boost::dispatch::meta::elementwise_boost::simd::tag::multiplies_
(boost::dispatch::meta::unspecified_<float>,boost::dispatch::meta::unspecified_<int>),
1> Site=boost::dispatch::tag::formal_,
1> Enable=void,
1> B=false
1> ]
1>c:\users\otristan\code\boost\boost\simd\operator\specific\preprocessed\common.hpp(88):
error C2868:
'boost::simd::ext::implement::splat_or_map<B>::type' :
illegal syntax for using-declaration; expected qualified-name
1> with
1> [
1>
Sig=boost::dispatch::meta::elementwise_boost::simd::tag::multiplies_
(boost::dispatch::meta::unspecified_<float>,boost::dispatch::meta::unspecified_<int>),
1> Site=boost::dispatch::tag::formal_,
1> Enable=void,
1> B=false
1> ]
--
UVI http://www.uvi.net/
Olivier Tristan| Research & Development
o.tristan@uvi.net
Facebook http://www.facebook.com/UVI.Official Twitter
http://twitter.com/UVIofficial Youtube
http://www.youtube.com/user/UVIofficial SoundCloud
http://soundcloud.com/uvi-official Blog UVI http://blog.uvi.net/