csr_out_edge_iterator and csr_in_edge_iterator are part of the
boost::detail namespace, so they need to explicitly qualify
iterator_core_access in their friend declarations. Note that
csr_edge_iterator already gets this correct.
Works fine with c++11, thanks!
System: (K)Ubuntu 16.04 LTS
Compiler: g++ (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
Try to 'g++ -c' the four SGB examples girth.cpp, miles_span.cpp,
roget_components.cpp, and topo-sort-with-sgb.cpp.
(1) SGB 2002-01-30 changed the 'Associated Press scores' from 'ap0' and
'ap1' to 'ap'. This preprocessor macro (sic!) collides with numerous
function parameters in 'named_function_params.hpp'. '#undef'ining the
macro doesn't break the BGL examples.
(2) girth.cpp fails because of a missing 'null_vertex()' function.
(3) roget_components.cpp invokes 'strncmp()' from the C library.
(4) topo-sort-with-sgb.cpp hickups because of a missing 'vertices()'
function. Following roget_components.cpp and putting the collective
SGB header up front fixes this.
* Add travis-ci as CI for boostorg/graph repo.
I thought it would be a great idea to have the test running from a
"neutral entity" instead of having to checkout the pull request and
cd libs/graph/test && ../../../b2
I saw that many other boostorg submodules had their own CI system:
- compute relies on travis-ci
- geometry uses circleci
The major difference between circleci and travis-ci is the multi-threading supported by circleci. Both are free for open-source project (as of 2016/04/26). I chose travis-ci because I know how to configure it.
As for geometry, we could also use coveralls.io to display the test covering reports and improve the quality/coverage of tests on boostorg/graph.
IMPORTANT: a member of boostorg will have to add the repo boostorg/graph into travis-ci for it to work.
* csr_graph_test won't pass unless -std=c++11 is enabled
* Fixed gcc too old (4.6.3) using instead gcc-4.8 for -std=c++11
So we can at least make the examples use a more consistent code style.
Run clang-format like so:
$ clang-format -i *.cpp
and use git diff to see what has changed.
This will strip trailing whitespace too. You can ignore that by
using git diff -w
* examples: Sort the examples in the Jamfile.
This makes it easier to see which example files are even
mentioned in the build.
* examples: Build all examples.
To at least test that they build with the current API.
The newly-mentioned files here seem to be mostly (maybe all) the
BGL book examples that were added in 2001:
5215e9b4f2
I would prefer to put these all in an examples/bgl_book subdirectory.
* Examples build: Comment out examples that cannot be expected to build.
For instance, because they depend on SBG or Stanford Graph.
* Examples: Add missing <iostream> includes.
* Examples: Comment out unused typedefs and variables.
* Examples: king_ordering: Adapt to newer API.
Specify the extra parameter for king_ordering().
The API was changed in 2005:
4bc19a1621
The test code was already correct:
https://github.com/imvu/boost/blob/master/libs/graph/test/king_ordering.cpp
* Examples: Some graphviz examples: Link to the library.
read_graphviz() is not header only.
* csr-example: Pass edge_are_sorted to constructor.
To use the new (well, in 2009) API:
809904f268
* iteration_macros: Use BGL_FORALL_ADJ.
Not BGL_FORALL_ADJACENT(), which doesn't exist, because this was
changed in 2001:
a0061ba07e
* examples: kevin-bacon2: Fix the build.
Include boost/serialization/string.hpp to fix this error:
kevin-bacon2.cpp:68:9: required from here
../../../boost/serialization/access.hpp:116:9: error: ‘class std::__cxx11::basic_string<char>’ has no member named ‘serialize’
and link to the boost serialization library.
* examples: loop_dfs: Add a missing typename keyword.
* examples: accum-compile-times: Remove unused variables.
* Examples: Remove unused typedefs.
* examples: avoid warning about parentheses aronud &&.
* example: read_graphviz: Actually use status.
* Example: adj_list_ra_edgelist: Fix the build.
The [] syntax must have worked once but doesn't anymore.
This fixes the build but it is even more clearl now a stupid way to use
the edge iterator.
* Examples: Remove unused typedefs.
* Examples: Remove an unused variable.
* Example: iohb: A const correction.
Otherwise newer compilers complain about converting string literals
to char* when callig this function.
* Exmaples: iohb: Avoid security warning with fprintf().
* Examples: Actually use a variable.
* Examples: Comment out all Graphviz examples.
These use the now-non-existant GraphizGraph and GraphvizDigraph
types. Presumably these could be updated but it's not obvious how
to do that:
https://svn.boost.org/trac/boost/ticket/4762