Warum ist der folgende Typ as_vet_type
boost::fusion::vector2<const int, const int>
beim Kompilieren mit C++ 03 und boost::fusion::vector<int, int>
beim Kompilieren mit C++ 11? const
fehlt mit C++ 11. Ist das ein Fehler oder eine Funktion? Ich habe das mit Boost 1,60 getestet.Boost-Fusion Warum gibt es unterschiedliche Ergebnisse in C++ 11 und C++ 03?
#include <boost/fusion/container/vector.hpp>
#include <boost/fusion/include/vector.hpp>
#include <boost/fusion/container/vector/vector_fwd.hpp>
#include <boost/fusion/include/vector_fwd.hpp>
#include <boost/fusion/algorithm/transformation/transform.hpp>
#include <boost/fusion/include/transform.hpp>
#include <boost/fusion/container/vector/convert.hpp>
#include <boost/fusion/include/as_vector.hpp>
struct functor
{
template<class> struct result;
template<class F, class T>
struct result<F(T)> {
typedef const int type;
};
template<class T>
typename result<functor(T) >::type
operator()(T x) const;
};
int main()
{
typedef boost::fusion::vector<const int & ,char &> cont_type;
typedef typename boost::fusion::result_of::transform<cont_type ,functor >::type view_type;
typedef typename boost::fusion::result_of::as_vector<view_type>::type as_vec_type;
as_vec_type asd;
asd.x;
return 0;
}