Bonjour à tous,
Je me demande pourquoi cette instruction ne compile pas:
j'ai le message d'erreur suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <boost/mpl/vector.hpp> #include <boost/mpl/pop_front.hpp> #include <boost/mpl/empty.hpp> #include <boost/mpl/assert.hpp> #include <boost/type_traits/is_same.hpp> using namespace boost::mpl; typedef vector<> empty_vector; typedef vector<int> int_vector; BOOST_MPL_ASSERT(( boost::is_same< empty_vector, pop_front<int_vector>::type > ));
Je me serai attendu à ce que le type renvoyé par pop_front sur un vector à un type me renvoie le type vector<>1>error C2664: 'boost::mpl::assertion_failed'*: impossible de convertir le paramètre 1 de 'boost::mpl::failed ************boost::is_same<T,U>::* ***********' en 'boost::mpl::assert<false>::type'
1> with
1> [
1> T=empty_vector,
1> U=boost::mpl::pop_front_impl<boost::mpl::aux::vector_tag<1>>::apply<int_vector>::type
1> ]
1> Aucun constructeur n'a pu prendre le type de source, ou la résolution de la surcharge du constructeur était ambiguë
Partager