• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright David Abrahams 2005.
2 // Distributed under the Boost Software License, Version 1.0.
3 // (See accompanying file LICENSE_1_0.txt or copy at
4 // http://www.boost.org/LICENSE_1_0.txt)
5 
6 #include <boost/parameter/name.hpp>
7 
8 namespace graphs {
9 
10     BOOST_PARAMETER_NAME(graph)    // Note: no semicolon
11     BOOST_PARAMETER_NAME(visitor)
12     BOOST_PARAMETER_NAME(root_vertex)
13     BOOST_PARAMETER_NAME(index_map)
14     BOOST_PARAMETER_NAME(color_map)
15 } // namespace graphs
16 
17 #include <boost/core/lightweight_test.hpp>
18 
19 namespace graphs { namespace core {
20 
21     template <typename ArgumentPack>
depth_first_search(ArgumentPack const & args)22     void depth_first_search(ArgumentPack const& args)
23     {
24         BOOST_TEST_EQ(false, args[_color_map]);
25         BOOST_TEST_EQ('G', args[_graph]);
26         BOOST_TEST_CSTR_EQ("hello, world", args[_index_map]);
27         BOOST_TEST_EQ(3.5, args[_root_vertex]);
28         BOOST_TEST_EQ(2, args[_visitor]);
29     }
30 }} // namespace graphs::core
31 
main()32 int main()
33 {
34     using namespace graphs;
35 
36     core::depth_first_search((
37         _graph = 'G', _visitor = 2, _root_vertex = 3.5
38       , _index_map = "hello, world", _color_map = false
39     ));
40     return boost::report_errors();
41 }
42