All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Pages
cycle_traits.hpp
Go to the documentation of this file.
1 //=======================================================================
2 // Copyright (c) 2013 Piotr Wygocki
3 //
4 // Distributed under the Boost Software License, Version 1.0. (See
5 // accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt)
7 //=======================================================================
15 #ifndef PAAL_CYCLE_TRAITS_HPP
16 #define PAAL_CYCLE_TRAITS_HPP
17 
19 
20 namespace paal {
21 namespace data_structures {
22 
28 template <typename Cycle> struct cycle_traits {
30  typedef decltype(std::declval<Cycle>().vbegin()) vertex_iterator;
31  typedef typename std::iterator_traits<vertex_iterator>::value_type
32  CycleElem;
33 };
34 }
35 }
36 #endif // PAAL_CYCLE_TRAITS_HPP
decltype(std::declval< Cycle >().vbegin()) typedef vertex_iterator
Vertex iterator type.
traits for Cycle concept