lundi 22 octobre 2018

C++ typedef "does not name a template type"

I did some modifications to a Boost library and would like to do a typedef of a template class:

external_file.h:

#include <cstdint>
#include "fortune_line_segment_cluster/boost/libs/polygon/include/boost/polygon/segment_data.hpp"

typedef boost::polygon::segment_data_cluster<int32_t, int32_t> LINE_SEGMENT;

and my boost file: fortune_line_segment_cluster/boost/libs/polygon/include/boost/polygon/segment_data.hpp :

namespace boost {
namespace polygon {
template <typename CoordinateType, typename ClusterType>
  class segment_data_cluster {
public:
  typedef ClusterType cluster_type;
  typedef CoordinateType coordinate_type;
  typedef point_data<coordinate_type> point_type;
// ....
}
}
}

When I try to compile the code, I get:

error: 'segment_data_cluster' in namespace 'boost::polygon' does not name a template type typedef boost::polygon::segment_data_cluster LINE_SEGMENT;

However, I guess the compiler recognizes the template class right, because when I for example try to pass only one template type I get following error:

error: wrong number of template arguments (1, should be 2) typedef boost::polygon::segment_data_cluster LINE_SEGMENT;

Aucun commentaire:

Enregistrer un commentaire