123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #include <boost/parameter/name.hpp>
- BOOST_PARAMETER_NAME(graph)
- BOOST_PARAMETER_NAME(visitor)
- BOOST_PARAMETER_NAME(root_vertex)
- BOOST_PARAMETER_NAME(index_map)
- BOOST_PARAMETER_NAME(in_out(color_map))
- namespace boost {
- template <typename T = int>
- struct dfs_visitor
- {
- };
- int vertex_index = 0;
- }
- #include <boost/parameter/preprocessor.hpp>
- namespace graphs {
- BOOST_PARAMETER_FUNCTION(
- (void), // 1. parenthesized return type
- depth_first_search, // 2. name of the function template
- tag, // 3. namespace of tag types
- (required (graph, *) ) // 4. one required parameter, and
- (optional // four optional parameters, with defaults
- (visitor, *, boost::dfs_visitor<>())
- (root_vertex, *, *vertices(graph).first)
- (index_map, *, get(boost::vertex_index,graph))
- (in_out(color_map), *,
- default_color_map(num_vertices(graph), index_map)
- )
- )
- )
- {
- // ... body of function goes here...
- // use graph, visitor, index_map, and color_map
- }
- }
|