From e5813944a084d31d3484552d43899f8b3e0c32e0 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leroy Date: Fri, 13 Mar 2026 19:56:08 -0400 Subject: [PATCH 1/3] improve doc entry points --- README.adoc | 208 +++---------------- doc/library-detail.adoc | 111 ++++++++++ doc/modules/ROOT/nav.adoc | 1 + doc/modules/ROOT/pages/acknowledgements.adoc | 43 ++++ doc/modules/ROOT/pages/core_api.adoc | 4 +- 5 files changed, 185 insertions(+), 182 deletions(-) create mode 100644 doc/library-detail.adoc create mode 100644 doc/modules/ROOT/pages/acknowledgements.adoc diff --git a/README.adoc b/README.adoc index 06baef63..b9357174 100644 --- a/README.adoc +++ b/README.adoc @@ -1,3 +1,7 @@ += Boost.OpenMethod + +== Build Status + [cols="^1,1,1,1,1,1,1", options="header"] |=== | Branch | GH Actions | Coverity Scan | codecov.io | Deps | Docs | Tests @@ -7,8 +11,8 @@ | image:https://scan.coverity.com/projects/32486/badge.svg[Coverity Scan Build Status,link=https://scan.coverity.com/projects/boostorg-openmethod] | image:https://codecov.io/gh/boostorg/openmethod/branch/master/graph/badge.svg[codecov,link=https://codecov.io/gh/boostorg/openmethod/branch/master] | image:https://img.shields.io/badge/deps-master-brightgreen.svg[Deps,link=https://pdimov.github.io/boostdep-report/master/openmethod.html] -| image:https://img.shields.io/badge/docs-master-brightgreen.svg[Documentation,link=https://www.boost.org/doc/libs/master/libs/openmethod/doc/html/openmethod.html] -| image:https://img.shields.io/badge/matrix-master-brightgreen.svg[Enter the Matrix,link=http://www.boost.org/development/tests/master/developer/openmethod.html] +| image:https://img.shields.io/badge/docs-master-brightgreen.svg[Documentation,link=https://www.boost.org/library/latest/openmethod/] +| image:https://img.shields.io/badge/matrix-master-brightgreen.svg[Enter the Matrix,link=https://regression.boost.org/master/developer/openmethod.html] | https://github.com/boostorg/openmethod/tree/develop[`develop`] | image:https://github.com/boostorg/openmethod/actions/workflows/ci.yml/badge.svg?branch=develop[CI,link=https://github.com/boostorg/openmethod/actions/workflows/ci.yml] @@ -16,190 +20,34 @@ | image:https://codecov.io/gh/boostorg/openmethod/branch/develop/graph/badge.svg[codecov,link=https://codecov.io/gh/boostorg/openmethod/branch/develop] | image:https://img.shields.io/badge/deps-develop-brightgreen.svg[Deps,link=https://pdimov.github.io/boostdep-report/develop/openmethod.html] | image:https://img.shields.io/badge/docs-develop-brightgreen.svg[Documentation,link=https://www.boost.org/doc/libs/develop/libs/openmethod/doc/html/openmethod.html] -| image:https://img.shields.io/badge/matrix-develop-brightgreen.svg[Enter the Matrix,link=http://www.boost.org/development/tests/develop/developer/openmethod.html] +| image:https://img.shields.io/badge/matrix-develop-brightgreen.svg[Enter the Matrix,link=https://regression.boost.org/develop/developer/openmethod.html] |=== -== Boost.OpenMethod - -=== Overview - -Boost.OpenMethod implements open-methods in C++17 and above. - -Open-methods are virtual functions that exist outside of classes, as -free-standing functions. They make it possible to add polymorphic behavior to -existing classes, without modifying them. This implementation supports single -and multiple dispatch. - -=== Example - -[source,c++] ----- -// library - -struct Matrix { - virtual ~Matrix() = default; -}; - -struct SquareMatrix : Matrix {}; -struct SymmetricMatrix : Matrix {}; -struct DiagonalMatrix : SymmetricMatrix {}; - -// application - -#include -#include -#include - -#include -#include - -using boost::openmethod::virtual_ptr; - -BOOST_OPENMETHOD_CLASSES(Matrix, SquareMatrix, SymmetricMatrix, DiagonalMatrix); - -BOOST_OPENMETHOD(to_json, (virtual_ptr, std::ostream& os), void); - -BOOST_OPENMETHOD_OVERRIDE(to_json, (virtual_ptr, std::ostream& os), void) { - os << "all the elements\n"; -} - -BOOST_OPENMETHOD_OVERRIDE(to_json, (virtual_ptr, std::ostream& os), void) { - os << "elements above and including the diagonal\n"; -} - -BOOST_OPENMETHOD_OVERRIDE(to_json, (virtual_ptr, std::ostream& os), void) { - os << "just the diagonal\n"; -} - -int main() { - std::array, 3> matrices = { - std::make_unique(), - std::make_unique(), - std::make_unique(), - }; - - boost::openmethod::initialize(); - - for (const auto& m : matrices) { - to_json(*m, std::cout); - } -} - -// output: -// all the elements -// elements above and including the diagonal -// just the diagonal ----- - -=== Features - -* Single dispatch can be as fast as equivalent virtual function calls. - -* Multiple dispatch in constant time (for a given number of virtual parameters). - -* Redundancy-free multiple dispatch tables. - -* Inter-operation with standard smart pointers, extensible to other pointer-like - types. - -* Exception agnostic by default. - -* Macro-based interface for convenience. - -* Macro-free interface for inter-operation with templates. - -* Customization points for alternative RTTI systems, error handling, vptr - placement, etc. - -* Headers-only. - -=== Requirements - -The library requires an optimizing compiler supporting C++17 or above. - -=== Tested Compilers - -Boost.OpenMethod is tested with the following compilers: - -* clang: 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 - -* gcc: 8, 9, 10, 11, 12, 13, 14, 15 - -* msvc: 14.3 - -* icpx - -and on the following platforms: - -* Linux - -* macOS - -* Windows - -* s390x - -=== Quality Assurance - -The development infrastructure for the library includes these per-commit -analyses: - -* Coverage reports - -* Clang sanitizers - -* Compilation and tests on Drone.io and GitHub Actions - -=== Acknowledgments - -I would like to thank the C++ Alliance for their support, in particular -Joaquín M. López Muñoz for encouraging me to submit my library and being the -first to endorse it; and Dmitryi Arkhipov for volunteering to be the review -manager. - -Thanks to the members of the Boost community who posted a formal review: - -* Andrzej Krzemienski - -* Christian Mazakas - -* Joaquin M López Muñoz - -* Klemens Morgenstern - -* Ruben Perez - -* Yannick Le Goc - -Also thanks to Steven Watanabe for his cogent feedback and advice, and all -the people who posted remarks and suggestions. - -This work was strongly influenced by the following papers: - -* https://www.stroustrup.com/multimethods.pdf[Open Multi-Methods for C++], -Peter Pirkelbauer, Yuriy Solodkyy and Bjarne Stroustrup - -* https://core.ac.uk/download/pdf/18599789.pdf[Simplifying the Analysis of -C++ Programs], Yuriy Solodkyy. +This page is intended for people who want to learn about the internals of the library, +and, perhaps, contribute to it. If you are a (potential) user, please head to the +https://www.boost.org/doc/libs/latest/libs/openmethod/doc/html/openmethod/index.html[documentation]. -* http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2216.pdf[Report -on language support for Multi-Methods and Open-Methods for C++], Peter -Pirkelbauer, Yuriy Solodkyy and Bjarne Stroustrup. +== Contributing -* https://dl.acm.org/doi/abs/10.1145/191081.191117[Optimizing multi-method -dispatch using compressed dispatch tables], Eric Amiel, Olivier Gruber and -Eric Simon. +Submit your contributions as pull requests against *develop* branch. Please note: by +submitting PRs you implicitly agree to license your modifications under the +http://www.boost.org/LICENSE_1_0.txt[Boost Software License, Version 1.0]. -Finally, thanks to Prof. J.D. Garcia, of the Universidad Carlos III in Madrid, -for organizing the "using std::cpp" conference, and introducing me to Joaquín. +== Community -=== More information +Questions, suggestions, defect reports, etc can be submitted via the following +channels: -* http://stackoverflow.com/questions/ask?tags=c%2B%2B,boost,boost-openmethod[Ask questions] -* https://github.com/boostorg/openmethod/issues[Report bugs]: Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well. -* Submit your patches as pull requests against *develop* branch. Note that by submitting patches you agree to license your modifications under the http://www.boost.org/LICENSE_1_0.txt[Boost Software License, Version 1.0]. -* Discussions about the library are held on the http://www.boost.org/community/groups.html#main[Boost developers mailing list]. Be sure to read the http://www.boost.org/community/policy.html[discussion policy] before posting and add the `[openmethod]` tag at the beginning of the subject line. +* https://cpplang.slack.com/archives/C0A16HR702G[Slack]. Best for quick +questions, especially for those getting started with the library. -=== License +* http://www.boost.org/community/groups.html#main[The Boost developers mailing +list]. Best for in-depth discussion of the features, future, and implementation +of the library. Be sure to read the +http://www.boost.org/community/policy.html[discussion policy] before posting. +Please add the `[openmethod]` tag at the beginning of the subject line. -Distributed under the http://www.boost.org/LICENSE_1_0.txt[Boost Software License, Version 1.0]. +* https://github.com/boostorg/openmethod/issues[Issues page on GitHub]. Best for +bug reports. Please mention the Boost version, platform and compiler you are +using, and provide a small compilable code sample to reproduce the problem. Also +a good place for feature requests and suggestions. diff --git a/doc/library-detail.adoc b/doc/library-detail.adoc new file mode 100644 index 00000000..2b019f68 --- /dev/null +++ b/doc/library-detail.adoc @@ -0,0 +1,111 @@ +== Boost.OpenMethod + +This page gives a 10,000-foot view of the library. For the motivation, +tutorials and reference, please follow the documentation link. + +=== Features + +* Free-standing virtual functions, similar to CLOS, Clojure, Julia, Dylan, etc. + +* Single dispatch can be as fast as equivalent virtual function calls. + +* Multiple dispatch in constant time (for a given number of virtual parameters). + +* Redundancy-free multiple dispatch tables. + +* Inter-operation with standard smart pointers, extensible to other pointer-like + types. + +* Exception agnostic by default. + +* Macro-based interface for convenience. + +* Macro-free interface for inter-operation with templates. + +* Customization points for alternative RTTI systems, error handling, vptr + placement, etc. + +* Header-only. + +=== Requirements + +The library requires an optimizing compiler supporting C++17 or above. + +=== Tested Compilers + +Boost.OpenMethod is tested with the following compilers: + +* clang: 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 + +* gcc: 8, 9, 10, 11, 12, 13, 14, 15 + +* msvc: 14.3 + +* icpx + +...on the following platforms: + +* Linux + +* macOS + +* Windows + +* s390x + +=== Quality Assurance + +The development infrastructure for the library includes these per-commit +analyses: + +* Coverage reports + +* Clang sanitizers + +* Compilation and tests on Drone.io and GitHub Actions + +=== Build Status + +[cols="^1,1,1,1,1,1,1", options="header"] +|=== +| Branch | GH Actions | Coverity Scan | codecov.io | Deps | Docs | Tests + +| https://github.com/boostorg/openmethod/tree/master[`master`] +| image:https://github.com/boostorg/openmethod/actions/workflows/ci.yml/badge.svg?branch=master[CI,link=https://github.com/boostorg/openmethod/actions/workflows/ci.yml] +| image:https://scan.coverity.com/projects/32486/badge.svg[Coverity Scan Build Status,link=https://scan.coverity.com/projects/boostorg-openmethod] +| image:https://codecov.io/gh/boostorg/openmethod/branch/master/graph/badge.svg[codecov,link=https://codecov.io/gh/boostorg/openmethod/branch/master] +| image:https://img.shields.io/badge/deps-master-brightgreen.svg[Deps,link=https://pdimov.github.io/boostdep-report/master/openmethod.html] +| image:https://img.shields.io/badge/docs-master-brightgreen.svg[Documentation,link=https://www.boost.org/library/latest/openmethod/] +| image:https://img.shields.io/badge/matrix-master-brightgreen.svg[Enter the Matrix,link=https://regression.boost.org/master/developer/openmethod.html] + +| https://github.com/boostorg/openmethod/tree/develop[`develop`] +| image:https://github.com/boostorg/openmethod/actions/workflows/ci.yml/badge.svg?branch=develop[CI,link=https://github.com/boostorg/openmethod/actions/workflows/ci.yml] +| image:https://scan.coverity.com/projects/32486/badge.svg[Coverity Scan Build Status,link=https://scan.coverity.com/projects/boostorg-openmethod] +| image:https://codecov.io/gh/boostorg/openmethod/branch/develop/graph/badge.svg[codecov,link=https://codecov.io/gh/boostorg/openmethod/branch/develop] +| image:https://img.shields.io/badge/deps-develop-brightgreen.svg[Deps,link=https://pdimov.github.io/boostdep-report/develop/openmethod.html] +| image:https://img.shields.io/badge/docs-develop-brightgreen.svg[Documentation,link=https://www.boost.org/doc/libs/develop/libs/openmethod/doc/html/openmethod.html] +| image:https://img.shields.io/badge/matrix-develop-brightgreen.svg[Enter the Matrix,link=https://regression.boost.org/develop/developer/openmethod.html] +|=== + +=== Community + +Questions, suggestions, defect reports, etc can be submitted via the following +channels: + +* https://cpplang.slack.com/archives/C0A16HR702G[Slack]. Best for quick +questions, especially for those getting started with the library. + +* http://www.boost.org/community/groups.html#main[The Boost developers mailing +list]. Best for in-depth discussion of the features, future, and implementation +of the library. Be sure to read the +http://www.boost.org/community/policy.html[discussion policy] before posting. +Please add the `[openmethod]` tag at the beginning of the subject line. + +* https://github.com/boostorg/openmethod/issues[Issues page on GitHub]. Best for +bug reports. Please mention the Boost version, platform and compiler you are +using, and provide a small compilable code sample to reproduce the problem. Also +a good place for feature requests and suggestions. + +=== License + +Distributed under the http://www.boost.org/LICENSE_1_0.txt[Boost Software License, Version 1.0]. diff --git a/doc/modules/ROOT/nav.adoc b/doc/modules/ROOT/nav.adoc index 6f79183f..edaebaa3 100644 --- a/doc/modules/ROOT/nav.adoc +++ b/doc/modules/ROOT/nav.adoc @@ -18,3 +18,4 @@ ** xref:ref_headers.adoc[Headers] ** xref:ref_macros.adoc[Macros] ** xref:reference:boost/openmethod.adoc[Namespace boost::openmethod] +* xref:acknowledgements.adoc[Acknowledgements] diff --git a/doc/modules/ROOT/pages/acknowledgements.adoc b/doc/modules/ROOT/pages/acknowledgements.adoc new file mode 100644 index 00000000..266072b8 --- /dev/null +++ b/doc/modules/ROOT/pages/acknowledgements.adoc @@ -0,0 +1,43 @@ + +[#Acknowledgements] + +I would like to thank the C++ Alliance for their support, in particular +Joaquín M. López Muñoz for encouraging me to submit my library and being the +first to endorse it; and Dmitryi Arkhipov for volunteering to be the review +manager. + +Thanks to the members of the Boost community who posted a formal review: + +* Andrzej Krzemienski + +* Christian Mazakas + +* Joaquin M López Muñoz + +* Klemens Morgenstern + +* Ruben Perez + +* Yannick Le Goc + +Also thanks to Steven Watanabe for his cogent feedback and advice, and all +the people who posted remarks and suggestions. + +This work was strongly influenced by the following papers: + +* https://www.stroustrup.com/multimethods.pdf[Open Multi-Methods for C++], +Peter Pirkelbauer, Yuriy Solodkyy and Bjarne Stroustrup + +* https://core.ac.uk/download/pdf/18599789.pdf[Simplifying the Analysis of +C++ Programs], Yuriy Solodkyy. + +* http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2216.pdf[Report +on language support for Multi-Methods and Open-Methods for C++], Peter +Pirkelbauer, Yuriy Solodkyy and Bjarne Stroustrup. + +* https://dl.acm.org/doi/abs/10.1145/191081.191117[Optimizing multi-method +dispatch using compressed dispatch tables], Eric Amiel, Olivier Gruber and +Eric Simon. + +Finally, thanks to Prof. J.D. Garcia, of the Universidad Carlos III in Madrid, +for organizing the "using std::cpp" conference, and introducing me to Joaquín. diff --git a/doc/modules/ROOT/pages/core_api.adoc b/doc/modules/ROOT/pages/core_api.adoc index 593302ee..5da6129c 100644 --- a/doc/modules/ROOT/pages/core_api.adoc +++ b/doc/modules/ROOT/pages/core_api.adoc @@ -58,8 +58,8 @@ functions passed as template arguments to the method. include::{example}/core_api.cpp[tag=variable_overrider] ---- -Once again we find ourselves inventing a name for a single use. In C++26, we -will probably have the Python-like `_` for this. In the meatime, we can use +Once again we find ourselves inventing a name for a single use. Maybe some day +C++ will get a Python-like `_` special variable. In the meantime, we can use another convenience macro: xref:BOOST_OPENMETHOD_REGISTER.adoc[BOOST_OPENMETHOD_REGISTER]. It takes a class, and instantiates a static object with an obfuscated name: From bf00f26e91c249028eccf9b5f2bcd77464cae372 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leroy Date: Fri, 13 Mar 2026 19:56:44 -0400 Subject: [PATCH 2/3] remove regression links --- README.adoc | 6 ++---- doc/library-detail.adoc | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/README.adoc b/README.adoc index b9357174..2791eccd 100644 --- a/README.adoc +++ b/README.adoc @@ -2,9 +2,9 @@ == Build Status -[cols="^1,1,1,1,1,1,1", options="header"] +[cols="^1,1,1,1,1,1", options="header"] |=== -| Branch | GH Actions | Coverity Scan | codecov.io | Deps | Docs | Tests +| Branch | GH Actions | Coverity Scan | codecov.io | Deps | Docs | https://github.com/boostorg/openmethod/tree/master[`master`] | image:https://github.com/boostorg/openmethod/actions/workflows/ci.yml/badge.svg?branch=master[CI,link=https://github.com/boostorg/openmethod/actions/workflows/ci.yml] @@ -12,7 +12,6 @@ | image:https://codecov.io/gh/boostorg/openmethod/branch/master/graph/badge.svg[codecov,link=https://codecov.io/gh/boostorg/openmethod/branch/master] | image:https://img.shields.io/badge/deps-master-brightgreen.svg[Deps,link=https://pdimov.github.io/boostdep-report/master/openmethod.html] | image:https://img.shields.io/badge/docs-master-brightgreen.svg[Documentation,link=https://www.boost.org/library/latest/openmethod/] -| image:https://img.shields.io/badge/matrix-master-brightgreen.svg[Enter the Matrix,link=https://regression.boost.org/master/developer/openmethod.html] | https://github.com/boostorg/openmethod/tree/develop[`develop`] | image:https://github.com/boostorg/openmethod/actions/workflows/ci.yml/badge.svg?branch=develop[CI,link=https://github.com/boostorg/openmethod/actions/workflows/ci.yml] @@ -20,7 +19,6 @@ | image:https://codecov.io/gh/boostorg/openmethod/branch/develop/graph/badge.svg[codecov,link=https://codecov.io/gh/boostorg/openmethod/branch/develop] | image:https://img.shields.io/badge/deps-develop-brightgreen.svg[Deps,link=https://pdimov.github.io/boostdep-report/develop/openmethod.html] | image:https://img.shields.io/badge/docs-develop-brightgreen.svg[Documentation,link=https://www.boost.org/doc/libs/develop/libs/openmethod/doc/html/openmethod.html] -| image:https://img.shields.io/badge/matrix-develop-brightgreen.svg[Enter the Matrix,link=https://regression.boost.org/develop/developer/openmethod.html] |=== This page is intended for people who want to learn about the internals of the library, diff --git a/doc/library-detail.adoc b/doc/library-detail.adoc index 2b019f68..621127b4 100644 --- a/doc/library-detail.adoc +++ b/doc/library-detail.adoc @@ -66,9 +66,9 @@ analyses: === Build Status -[cols="^1,1,1,1,1,1,1", options="header"] +[cols="^1,1,1,1,1,1", options="header"] |=== -| Branch | GH Actions | Coverity Scan | codecov.io | Deps | Docs | Tests +| Branch | GH Actions | Coverity Scan | codecov.io | Deps | Docs | https://github.com/boostorg/openmethod/tree/master[`master`] | image:https://github.com/boostorg/openmethod/actions/workflows/ci.yml/badge.svg?branch=master[CI,link=https://github.com/boostorg/openmethod/actions/workflows/ci.yml] @@ -76,7 +76,6 @@ analyses: | image:https://codecov.io/gh/boostorg/openmethod/branch/master/graph/badge.svg[codecov,link=https://codecov.io/gh/boostorg/openmethod/branch/master] | image:https://img.shields.io/badge/deps-master-brightgreen.svg[Deps,link=https://pdimov.github.io/boostdep-report/master/openmethod.html] | image:https://img.shields.io/badge/docs-master-brightgreen.svg[Documentation,link=https://www.boost.org/library/latest/openmethod/] -| image:https://img.shields.io/badge/matrix-master-brightgreen.svg[Enter the Matrix,link=https://regression.boost.org/master/developer/openmethod.html] | https://github.com/boostorg/openmethod/tree/develop[`develop`] | image:https://github.com/boostorg/openmethod/actions/workflows/ci.yml/badge.svg?branch=develop[CI,link=https://github.com/boostorg/openmethod/actions/workflows/ci.yml] @@ -84,7 +83,6 @@ analyses: | image:https://codecov.io/gh/boostorg/openmethod/branch/develop/graph/badge.svg[codecov,link=https://codecov.io/gh/boostorg/openmethod/branch/develop] | image:https://img.shields.io/badge/deps-develop-brightgreen.svg[Deps,link=https://pdimov.github.io/boostdep-report/develop/openmethod.html] | image:https://img.shields.io/badge/docs-develop-brightgreen.svg[Documentation,link=https://www.boost.org/doc/libs/develop/libs/openmethod/doc/html/openmethod.html] -| image:https://img.shields.io/badge/matrix-develop-brightgreen.svg[Enter the Matrix,link=https://regression.boost.org/develop/developer/openmethod.html] |=== === Community From 6fb6332ca11417dc1b4a4ded1652759758a08109 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leroy Date: Fri, 13 Mar 2026 20:06:16 -0400 Subject: [PATCH 3/3] improve doc entry points --- README.adoc | 2 +- doc/library-detail.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 2791eccd..f876e1c7 100644 --- a/README.adoc +++ b/README.adoc @@ -18,7 +18,7 @@ | image:https://scan.coverity.com/projects/32486/badge.svg[Coverity Scan Build Status,link=https://scan.coverity.com/projects/boostorg-openmethod] | image:https://codecov.io/gh/boostorg/openmethod/branch/develop/graph/badge.svg[codecov,link=https://codecov.io/gh/boostorg/openmethod/branch/develop] | image:https://img.shields.io/badge/deps-develop-brightgreen.svg[Deps,link=https://pdimov.github.io/boostdep-report/develop/openmethod.html] -| image:https://img.shields.io/badge/docs-develop-brightgreen.svg[Documentation,link=https://www.boost.org/doc/libs/develop/libs/openmethod/doc/html/openmethod.html] +| image:https://img.shields.io/badge/docs-develop-brightgreen.svg[Documentation,link=https://www.boost.org/doc/libs/develop/libs/openmethod/doc/html/openmethod] |=== This page is intended for people who want to learn about the internals of the library, diff --git a/doc/library-detail.adoc b/doc/library-detail.adoc index 621127b4..0e40f1ee 100644 --- a/doc/library-detail.adoc +++ b/doc/library-detail.adoc @@ -82,7 +82,7 @@ analyses: | image:https://scan.coverity.com/projects/32486/badge.svg[Coverity Scan Build Status,link=https://scan.coverity.com/projects/boostorg-openmethod] | image:https://codecov.io/gh/boostorg/openmethod/branch/develop/graph/badge.svg[codecov,link=https://codecov.io/gh/boostorg/openmethod/branch/develop] | image:https://img.shields.io/badge/deps-develop-brightgreen.svg[Deps,link=https://pdimov.github.io/boostdep-report/develop/openmethod.html] -| image:https://img.shields.io/badge/docs-develop-brightgreen.svg[Documentation,link=https://www.boost.org/doc/libs/develop/libs/openmethod/doc/html/openmethod.html] +| image:https://img.shields.io/badge/docs-develop-brightgreen.svg[Documentation,link=https://www.boost.org/doc/libs/develop/libs/openmethod/doc/html/openmethod] |=== === Community