#ifndef STATIC_GRAPH_TRAITS_HPP #define STATIC_GRAPH_TRAITS_HPP #include namespace osrm { namespace util { namespace traits { // Introspection for an arbitrary .data member attribute template struct HasDataMember : std::false_type { }; template struct HasDataMember().data) > 0))> : std::true_type { }; // Introspection for an arbitrary .target member attribute template struct HasTargetMember : std::false_type { }; template struct HasTargetMember().target) > 0))> : std::true_type { }; // Static Graph requires edges to have a .target and .data member attribute template struct HasDataAndTargetMember : std::integral_constant() && HasTargetMember()> { }; // Static Graph requires nodes to have a .first_edge member attribute template struct HasFirstEdgeMember : std::false_type { }; template struct HasFirstEdgeMember().first_edge) > 0))> : std::true_type { }; } // ns traits } // ns util } // ns osrm #endif // STATIC_GRAPH_TRAITS_HPP