From 3b369d6303f47cd7dd1769bdf10dc1939f3f89b5 Mon Sep 17 00:00:00 2001 From: Antony Polukhin Date: Wed, 14 Oct 2020 21:26:11 +0300 Subject: [PATCH] improve docs (refs #55) --- README.md | 4 ++-- include/boost/pfr/ops_fields.hpp | 36 +++++++++++++++++++++----------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 4236a39..1c6f7d1 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ This is a C++14 library for very basic reflection that gives you access to struc Branches | Build | Tests coverage | More info ----------------|-------------- | -------------- |----------- -Develop: | [![Build Status](https://travis-ci.org/apolukhin/magic_get.svg?branch=develop)](https://travis-ci.org/apolukhin/magic_get) [![Build status](https://ci.appveyor.com/api/projects/status/1edm74h5id8qpr2k/branch/develop?svg=true)](https://ci.appveyor.com/project/apolukhin/magic-get/branch/develop) | [![Coverage Status](https://coveralls.io/repos/github/apolukhin/magic_get/badge.png?branch=develop)](https://coveralls.io/github/apolukhin/magic_get?branch=develop) | -Master: | [![Build Status](https://travis-ci.org/apolukhin/magic_get.svg?branch=master)](https://travis-ci.org/apolukhin/magic_get) [![Build status](https://ci.appveyor.com/api/projects/status/1edm74h5id8qpr2k/branch/master?svg=true)](https://ci.appveyor.com/project/apolukhin/magic-get/branch/master) | [![Coverage Status](https://coveralls.io/repos/github/apolukhin/magic_get/badge.png?branch=master)](https://coveralls.io/github/apolukhin/magic_get?branch=master) | +Develop: | [![Build Status](https://travis-ci.org/apolukhin/magic_get.svg?branch=develop)](https://travis-ci.org/apolukhin/magic_get) [![Build status](https://ci.appveyor.com/api/projects/status/3tled9gd24k9paia/branch/develop?svg=true)](https://ci.appveyor.com/project/apolukhin/magic-get/branch/develop) | [![Coverage Status](https://coveralls.io/repos/github/apolukhin/magic_get/badge.png?branch=develop)](https://coveralls.io/github/apolukhin/magic_get?branch=develop) | +Master: | [![Build Status](https://travis-ci.org/apolukhin/magic_get.svg?branch=master)](https://travis-ci.org/apolukhin/magic_get) [![Build status](https://ci.appveyor.com/api/projects/status/3tled9gd24k9paia/branch/master?svg=true)](https://ci.appveyor.com/project/apolukhin/magic-get/branch/master) | [![Coverage Status](https://coveralls.io/repos/github/apolukhin/magic_get/badge.png?branch=master)](https://coveralls.io/github/apolukhin/magic_get?branch=master) | ### Motivating Example #0 ```c++ diff --git a/include/boost/pfr/ops_fields.hpp b/include/boost/pfr/ops_fields.hpp index 39e73b3..f13336d 100644 --- a/include/boost/pfr/ops_fields.hpp +++ b/include/boost/pfr/ops_fields.hpp @@ -33,53 +33,65 @@ /// \b Synopsis: namespace boost { namespace pfr { - /// Does a field-by-field comparison. + /// Does a field-by-field equality comparison. /// - /// \returns `std::tie( _lhs-fields_ ) == std::tie( _rhs-fields_ )` + /// Let MIN be std::min(tuple_size_v, tuple_size_v). Let _lhs-fields_ and _rhs-fields_ be the tuples of MIN fields of lhs and rhs correspondingly. + /// + /// \returns `std::tie( _lhs-fields_ ) == std::tie( _rhs-fields_ ) && tuple_size_v == tuple_size_v` template bool eq_fields(const T& lhs, const U& rhs) noexcept { return detail::binary_visit(lhs, rhs); } - /// Does a field-by-field comparison. + /// Does a field-by-field inequality comparison. /// - /// \returns `std::tie( _lhs-fields_ ) != std::tie( _rhs-fields_ )` + /// Let MIN be std::min(tuple_size_v, tuple_size_v). Let _lhs-fields_ and _rhs-fields_ be the tuples of MIN fields of lhs and rhs correspondingly. + /// + /// \returns `std::tie( _lhs-fields_ ) != std::tie( _rhs-fields_ ) || tuple_size_v != tuple_size_v` template bool ne_fields(const T& lhs, const U& rhs) noexcept { return detail::binary_visit(lhs, rhs); } - /// Does a field-by-field comparison. + /// Does a field-by-field greter comparison. /// - /// \returns `std::tie( _lhs-fields_ ) > std::tie( _rhs-fields_ )` + /// Let MIN be std::min(tuple_size_v, tuple_size_v). Let _lhs-fields_ and _rhs-fields_ be the tuples of MIN fields of lhs and rhs correspondingly. + /// + /// \returns `std::tie( _lhs-fields_ ) > std::tie( _rhs-fields_ ) || (std::tie( _lhs-fields_ ) == std::tie( _rhs-fields_ ) && tuple_size_v > tuple_size_v)` template bool gt_fields(const T& lhs, const U& rhs) noexcept { return detail::binary_visit(lhs, rhs); } - /// Does a field-by-field comparison. + /// Does a field-by-field less comparison. /// - /// \returns `std::tie( _lhs-fields_ ) < std::tie( _rhs-fields_ )` + /// Let MIN be std::min(tuple_size_v, tuple_size_v). Let _lhs-fields_ and _rhs-fields_ be the tuples of MIN fields of lhs and rhs correspondingly. + /// + /// \returns `std::tie( _lhs-fields_ ) < std::tie( _rhs-fields_ ) || (std::tie( _lhs-fields_ ) == std::tie( _rhs-fields_ ) && tuple_size_v < tuple_size_v)` template bool lt_fields(const T& lhs, const U& rhs) noexcept { return detail::binary_visit(lhs, rhs); } - /// Does a field-by-field comparison. + /// Does a field-by-field greater equal comparison. /// - /// \returns `std::tie( _lhs-fields_ ) >= std::tie( _rhs-fields_ )` + /// Let MIN be std::min(tuple_size_v, tuple_size_v). Let _lhs-fields_ and _rhs-fields_ be the tuples of MIN fields of lhs and rhs correspondingly. + /// + /// \returns `std::tie( _lhs-fields_ ) > std::tie( _rhs-fields_ ) || (std::tie( _lhs-fields_ ) == std::tie( _rhs-fields_ ) && tuple_size_v >= tuple_size_v)` template bool ge_fields(const T& lhs, const U& rhs) noexcept { return detail::binary_visit(lhs, rhs); } - /// Does a field-by-field comparison. + /// Does a field-by-field less equal comparison. /// - /// \returns `std::tie( _lhs-fields_ ) <= std::tie( _rhs-fields_ )` + /// Let MIN be std::min(tuple_size_v, tuple_size_v). Let _lhs-fields_ and _rhs-fields_ be the tuples of MIN fields of lhs and rhs correspondingly. + /// + /// \returns `std::tie( _lhs-fields_ ) < std::tie( _rhs-fields_ ) || (std::tie( _lhs-fields_ ) == std::tie( _rhs-fields_ ) && tuple_size_v <= tuple_size_v)` template bool le_fields(const T& lhs, const U& rhs) noexcept { return detail::binary_visit(lhs, rhs);