#ifndef HERA_DIAGRAM_TRAITS_H #define HERA_DIAGRAM_TRAITS_H namespace hera { template().begin())>::type > struct DiagramTraits { using Container = PairContainer_; using PointType = PointType_; using RealType = typename std::remove_reference< decltype(std::declval()[0]) >::type; static RealType get_x(const PointType& p) { return p[0]; } static RealType get_y(const PointType& p) { return p[1]; } }; template struct DiagramTraits> { using PointType = std::pair; using RealType = double; using Container = std::vector; static RealType get_x(const PointType& p) { return p.first; } static RealType get_y(const PointType& p) { return p.second; } }; template struct DiagramTraits> { using PointType = std::pair; using RealType = float; using Container = std::vector; static RealType get_x(const PointType& p) { return p.first; } static RealType get_y(const PointType& p) { return p.second; } }; } // end namespace hera #endif // HERA_DIAGRAM_TRAITS_H