diff -r 000000000000 -r bde4ae8d615e os/ossrv/stdcpp/tsrc/Boost_test/graph/src/transitive_closure.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/ossrv/stdcpp/tsrc/Boost_test/graph/src/transitive_closure.cpp Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,63 @@ +// Copyright (c) Jeremy Siek 2001 +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// NOTE: this final is generated by libs/graph/doc/transitive_closure.w + +/* + * © Portions copyright (c) 2006-2007 Nokia Corporation. All rights reserved. +*/ + +#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +#error The transitive closure algorithm uses partial specialization. +#endif + +#include +#include +#include + +#ifdef __SYMBIAN32__ +#include "std_log_result.h" +#define LOG_FILENAME_LINE __FILE__, __LINE__ +#endif + +int +main(int, char *[]) +{ + using namespace boost; + typedef property < vertex_name_t, char >Name; + typedef property < vertex_index_t, std::size_t, Name > Index; + typedef adjacency_list < listS, listS, directedS, Index > graph_t; + typedef graph_traits < graph_t >::vertex_descriptor vertex_t; + graph_t G; + std::vector < vertex_t > verts(4); + for (int i = 0; i < 4; ++i) + verts[i] = add_vertex(Index(i, Name('a' + i)), G); + add_edge(verts[1], verts[2], G); + add_edge(verts[1], verts[3], G); + add_edge(verts[2], verts[1], G); + add_edge(verts[3], verts[2], G); + add_edge(verts[3], verts[0], G); + + std::cout << "Graph G:" << std::endl; + print_graph(G, get(vertex_name, G)); + + adjacency_list <> TC; + transitive_closure(G, TC); + + std::cout << std::endl << "Graph G+:" << std::endl; + char name[] = "abcd"; + print_graph(TC, name); + std::cout << std::endl; + + std::ofstream out("tc-out.dot"); + write_graphviz(out, TC, make_label_writer(name)); + #ifdef __SYMBIAN32__ + testResultXml("transitive_closure"); + close_log_file(); + #endif + + return 0; +}