2 #include <ossia/detail/config.hpp>
4 #include <ossia/detail/small_vector.hpp>
6 #include <boost/graph/adjacency_list.hpp>
8 #if defined(OSSIA_SMALL_VECTOR)
19 template <
class Directed>
20 struct is_random_access;
22 struct is_random_access<smallvecS>
28 typedef mpl::true_ type;
32 template <
class ValueType>
33 struct container_gen<smallvecS, ValueType>
38 #if defined(OSSIA_TESTNG)
39 static constexpr std::size_t small_vec_size = 16;
41 static constexpr std::size_t small_vec_size = 1024;
43 typedef ossia::small_vector<ValueType, small_vec_size> type;
47 struct parallel_edge_traits<smallvecS>
49 typedef allow_parallel_edge_tag type;
54 template <
class T, std::
size_t N>
55 graph_detail::vector_tag container_category(
const ossia::small_vector<T, N>&)
57 return graph_detail::vector_tag();
60 template <
class T, std::
size_t N>
61 graph_detail::unstable_tag iterator_stability(
const ossia::small_vector<T, N>&)
63 return graph_detail::unstable_tag();
67 namespace graph_detail
69 using container::container_category;
70 using container::iterator_stability;
72 template <
class T, std::
size_t N>
73 struct container_traits<
ossia::small_vector<T, N>>
75 typedef vector_tag category;
76 typedef unstable_tag iterator_stability;
80 using container::container_category;
81 using container::iterator_stability;
87 using smallvecS = vecS;