Compare commits

..

1 Commits

Author SHA1 Message Date
9dc04a60f4 Rework as esp-idf component 2023-11-23 17:17:05 +01:00
16 changed files with 108 additions and 148 deletions

View File

@ -3,6 +3,8 @@
# Distributed under the Boost Software License, Version 1.0.
# https://www.boost.org/LICENSE_1_0.txt
if(NOT DEFINED IDF_TARGET)
cmake_minimum_required(VERSION 3.5...3.16)
project(boost_algorithm VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
@ -39,3 +41,33 @@ if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
endif()
else()
FILE(GLOB_RECURSE headers include/*.h include/*.hpp)
idf_component_register(
SRCS
${headers}
INCLUDE_DIRS
include
REQUIRES
boost_array
boost_assert
boost_bind
boost_concept_check
boost_config
boost_core
boost_exception
boost_function
boost_iterator
boost_mpl
boost_range
boost_regex
boost_static_assert
boost_throw_exception
boost_tuple
boost_type_traits
boost_unordered
)
endif()

11
Jamfile Normal file
View File

@ -0,0 +1,11 @@
# Boost.Algorithm Library Jamfile
#
# Copyright (c) 2018 James E. King III
#
# Use, modification, and distribution are subject to 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)
# please order by name to ease maintenance
build-project example ;
build-project test ;

View File

@ -1,42 +0,0 @@
# Copyright René Ferdinand Rivera Morell 2023-2024
# 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)
require-b2 5.2 ;
constant boost_dependencies :
/boost/array//boost_array
/boost/assert//boost_assert
/boost/bind//boost_bind
/boost/concept_check//boost_concept_check
/boost/config//boost_config
/boost/core//boost_core
/boost/exception//boost_exception
/boost/function//boost_function
/boost/iterator//boost_iterator
/boost/mpl//boost_mpl
/boost/range//boost_range
/boost/regex//boost_regex
/boost/static_assert//boost_static_assert
/boost/throw_exception//boost_throw_exception
/boost/tuple//boost_tuple
/boost/type_traits//boost_type_traits
/boost/unordered//boost_unordered ;
project /boost/algorithm
: common-requirements
<include>include
;
explicit
[ alias boost_algorithm : : : : <library>$(boost_dependencies) ]
[ alias all : boost_algorithm test
example
minmax/example minmax/test
string/example string/test
]
;
call-if : boost-library algorithm
;

View File

@ -16,18 +16,18 @@ using quickbook ;
using doxygen ;
using boostbook ;
doxygen autodoc
:
[ glob ../include/boost/algorithm/*.hpp
../include/boost/algorithm/searching/*.hpp
../include/boost/algorithm/cxx11/*.hpp
../include/boost/algorithm/cxx14/*.hpp
../include/boost/algorithm/cxx17/*.hpp
doxygen autodoc
:
[ glob ../../../boost/algorithm/*.hpp
../../../boost/algorithm/searching/*.hpp
../../../boost/algorithm/cxx11/*.hpp
../../../boost/algorithm/cxx14/*.hpp
../../../boost/algorithm/cxx17/*.hpp
]
:
:
<doxygen:param>"PREDEFINED=\"BOOST_ALGORITHM_DOXYGEN=1\""
<doxygen:param>WARNINGS=YES # Default NO, but useful to see warnings, especially in a logfile.
;
;
xml algorithm : algorithm.qbk ;
@ -36,7 +36,7 @@ boostbook standalone
:
algorithm
:
<dependency>autodoc
<dependency>autodoc
<xsl:param>boost.root=../../../..
<xsl:param>"boost.doxygen.reftitle=Boost.Algorithms C++ Reference"
<xsl:param>chapter.autolabel=0

View File

@ -8,9 +8,9 @@
# See http://www.boost.org for updates, documentation, and revision history.
project
project /boost/algorithm/example
: requirements
<library>/boost/algorithm//boost_algorithm
<include>../../../
<optimization>speed
<toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS
<toolset>msvc:<define>NOMINMAX

View File

@ -1,4 +1,4 @@
/*
/*
Copyright 2008 Adobe Systems Incorporated
Distributed under the Boost Software License, Version 1.0. (See accompanying
@ -84,7 +84,7 @@ namespace boost { namespace algorithm {
template <
typename BidirectionalIterator, // models BidirectionalIterator
typename Pred> // models UnaryPredicate
std::pair<BidirectionalIterator, BidirectionalIterator> gather
std::pair<BidirectionalIterator, BidirectionalIterator> gather
( BidirectionalIterator first, BidirectionalIterator last, BidirectionalIterator pivot, Pred pred )
{
// The first call partitions everything up to (but not including) the pivot element,
@ -106,11 +106,11 @@ template <
typename BidirectionalRange, //
typename Pred> // Pred models UnaryPredicate
std::pair<
typename boost::range_iterator<BidirectionalRange>::type,
typename boost::range_iterator<BidirectionalRange>::type>
typename boost::range_iterator<const BidirectionalRange>::type,
typename boost::range_iterator<const BidirectionalRange>::type>
gather (
BidirectionalRange &range,
typename boost::range_iterator<BidirectionalRange>::type pivot,
const BidirectionalRange &range,
typename boost::range_iterator<const BidirectionalRange>::type pivot,
Pred pred )
{
return boost::algorithm::gather ( boost::begin ( range ), boost::end ( range ), pivot, pred );

View File

@ -85,22 +85,6 @@ namespace boost {
return detail::is_classifiedF(std::ctype_base::alpha, Loc);
}
#ifndef BOOST_NO_CXX11
//! is_blank predicate
/*!
Construct the \c is_classified predicate for the \c ctype_base::blank category.
\param Loc A locale used for classification
\return An instance of the \c is_classified predicate
\since c++11
*/
inline detail::is_classifiedF
is_blank(const std::locale& Loc=std::locale())
{
return detail::is_classifiedF(std::ctype_base::blank, Loc);
}
#endif
//! is_cntrl predicate
/*!
Construct the \c is_classified predicate for the \c ctype_base::cntrl category.
@ -310,9 +294,6 @@ namespace boost {
// pull names to the boost namespace
using algorithm::is_classified;
using algorithm::is_space;
#ifndef BOOST_NO_CXX11
using algorithm::is_blank;
#endif
using algorithm::is_alnum;
using algorithm::is_alpha;
using algorithm::is_cntrl;

View File

@ -108,6 +108,7 @@ namespace boost {
\param Input An input sequence
\param Loc A locale used for 'space' classification
\return A trimmed copy of the input
*/
template<typename SequenceT>
inline void trim_all(SequenceT& Input, const std::locale& Loc =std::locale())
@ -190,6 +191,7 @@ namespace boost {
\param Input An input sequence
\param Fill A string used to fill the inner spaces
\param Loc A locale used for 'space' classification
\return A trimmed copy of the input
*/
template<typename SequenceT, typename RangeT>
inline void trim_fill(SequenceT& Input, const RangeT& Fill, const std::locale& Loc =std::locale())

View File

@ -7,11 +7,6 @@
# http://www.boost.org/LICENSE_1_0.txt)
#
project
: requirements
<library>/boost/algorithm//boost_algorithm
<library>/boost/timer//boost_timer ;
exe minmax_ex : minmax_ex.cpp ;
exe minmax_timer : minmax_timer.cpp ;

View File

@ -9,19 +9,17 @@
import testing ;
project : requirements <library>/boost/algorithm//boost_algorithm ;
alias unit_test_framework
: # sources
/boost/test//boost_unit_test_framework
;
/boost//unit_test_framework
;
{
test-suite algorithm/minmax
: [ run minmax_element_test.cpp unit_test_framework
: : : : minmax_element ]
[ run minmax_test.cpp unit_test_framework
: : : : minmax ]
: : : : minmax ]
;
}

View File

@ -10,40 +10,40 @@
import toolset ;
toolset.using doxygen ;
boostbook string_algo : string_algo.xml autodoc
boostbook string_algo : string_algo.xml autodoc
:
<xsl:param>boost.root=../../../../..
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/doc/html
;
doxygen autodoc
:
[ glob ../../include/boost/algorithm/string.hpp ]
[ glob ../../include/boost/algorithm/string_regex.hpp ]
:
[ glob ../../../../boost/algorithm/string.hpp ]
[ glob ../../../../boost/algorithm/string_regex.hpp ]
[ glob ../../include/boost/algorithm/string/classification.hpp ]
[ glob ../../include/boost/algorithm/string/iterator_range.hpp ]
[ glob ../../include/boost/algorithm/string/sequence_traits.hpp ]
[ glob ../../include/boost/algorithm/string/std_containers_traits.hpp ]
[ glob ../../include/boost/algorithm/string/concept.hpp ]
[ glob ../../include/boost/algorithm/string/compare.hpp ]
[ glob ../../include/boost/algorithm/string/constants.hpp ]
[ glob ../../include/boost/algorithm/string/case_conv.hpp ]
[ glob ../../include/boost/algorithm/string/find.hpp ]
[ glob ../../include/boost/algorithm/string/finder.hpp ]
[ glob ../../include/boost/algorithm/string/find_iterator.hpp ]
[ glob ../../include/boost/algorithm/string/trim.hpp ]
[ glob ../../include/boost/algorithm/string/predicate.hpp ]
[ glob ../../include/boost/algorithm/string/split.hpp ]
[ glob ../../include/boost/algorithm/string/iter_find.hpp ]
[ glob ../../include/boost/algorithm/string/erase.hpp ]
[ glob ../../include/boost/algorithm/string/join.hpp ]
[ glob ../../include/boost/algorithm/string/replace.hpp ]
[ glob ../../include/boost/algorithm/string/find_format.hpp ]
[ glob ../../include/boost/algorithm/string/formatter.hpp ]
[ glob ../../include/boost/algorithm/string/regex.hpp ]
[ glob ../../include/boost/algorithm/string/regex_find_format.hpp ]
[ glob ../../include/boost/algorithm/string/trim_all.hpp ]
[ glob ../../../../boost/algorithm/string/classification.hpp ]
[ glob ../../../../boost/algorithm/string/iterator_range.hpp ]
[ glob ../../../../boost/algorithm/string/sequence_traits.hpp ]
[ glob ../../../../boost/algorithm/string/std_containers_traits.hpp ]
[ glob ../../../../boost/algorithm/string/concept.hpp ]
[ glob ../../../../boost/algorithm/string/compare.hpp ]
[ glob ../../../../boost/algorithm/string/constants.hpp ]
[ glob ../../../../boost/algorithm/string/case_conv.hpp ]
[ glob ../../../../boost/algorithm/string/find.hpp ]
[ glob ../../../../boost/algorithm/string/finder.hpp ]
[ glob ../../../../boost/algorithm/string/find_iterator.hpp ]
[ glob ../../../../boost/algorithm/string/trim.hpp ]
[ glob ../../../../boost/algorithm/string/predicate.hpp ]
[ glob ../../../../boost/algorithm/string/split.hpp ]
[ glob ../../../../boost/algorithm/string/iter_find.hpp ]
[ glob ../../../../boost/algorithm/string/erase.hpp ]
[ glob ../../../../boost/algorithm/string/join.hpp ]
[ glob ../../../../boost/algorithm/string/replace.hpp ]
[ glob ../../../../boost/algorithm/string/find_format.hpp ]
[ glob ../../../../boost/algorithm/string/formatter.hpp ]
[ glob ../../../../boost/algorithm/string/regex.hpp ]
[ glob ../../../../boost/algorithm/string/regex_find_format.hpp ]
[ glob ../../../../boost/algorithm/string/trim_all.hpp ]
:
<doxygen:param>HIDE_UNDOC_MEMBERS=YES
<doxygen:param>EXTRACT_PRIVATE=NO
@ -53,7 +53,7 @@ doxygen autodoc
<doxygen:param>SEARCH_INCLUDES=YES
<doxygen:param>PREDEFINED="BOOST_STRING_TYPENAME=typename \"BOOST_STATIC_CONSTANT(type,var)=static const type var;\""
;

View File

@ -667,13 +667,6 @@
<functionname>is_space()</functionname>
</entry>
</row>
<row>
<entry>is_blank</entry>
<entry>Recognize blanks</entry>
<entry>
<functionname>is_blank()</functionname>
</entry>
</row>
<row>
<entry>is_alnum</entry>
<entry>Recognize alphanumeric characters</entry>

View File

@ -7,7 +7,6 @@
#
# See http://www.boost.org for updates, documentation, and revision history.
project : requirements <library>/boost/algorithm//boost_algorithm ;
exe conv_example : conv_example.cpp ;
exe predicate_example : predicate_example.cpp ;

View File

@ -9,33 +9,31 @@
import testing ;
project : requirements <library>/boost/algorithm//boost_algorithm ;
alias unit_test_framework
: # sources
/boost/test//boost_unit_test_framework
;
/boost//unit_test_framework
;
test-suite algorithm/string
: [ run
: [ run
trim_test.cpp unit_test_framework
: :
:
: trim
]
[ run
[ run
conv_test.cpp unit_test_framework
: :
:
: conv
]
[ run
[ run
predicate_test.cpp unit_test_framework
: :
:
: predicate
]
[ run
[ run
find_test.cpp unit_test_framework
: :
:
@ -53,23 +51,23 @@ test-suite algorithm/string
:
: join
]
[ run
[ run
replace_test.cpp unit_test_framework
: :
:
: replace
]
[ run
[ run
regex_test.cpp unit_test_framework
../../../regex/build//boost_regex
: :
:
:
: regex
]
[ run
[ run
find_format_test.cpp unit_test_framework
: :
:
:
: find_format
]
;

View File

@ -138,12 +138,7 @@ void classification_test()
TEST_CLASS( is_any_of( string("abc") ), "aaabbcc", "aaxb" );
TEST_CLASS( is_any_of( "abc" ), "aaabbcc", "aaxb" );
TEST_CLASS( is_from_range( 'a', 'c' ), "aaabbcc", "aaxb" );
#ifndef BOOST_NO_CXX11
TEST_CLASS( is_blank(), " \t", "\t \n\r" );
TEST_CLASS( !is_blank(), "abc\n\v\f\r", "a x\t" );
#endif
TEST_CLASS( !is_classified(std::ctype_base::space), "...", "..\n\r\t " );
TEST_CLASS( ( !is_any_of("abc") && is_from_range('a','e') ) || is_space(), "d e", "abcde" );

View File

@ -9,11 +9,9 @@
import testing ;
project : requirements <library>/boost/algorithm//boost_algorithm ;
alias unit_test_framework
: # sources
/boost/test//boost_unit_test_framework
/boost//unit_test_framework
;
@ -87,7 +85,7 @@ alias unit_test_framework
# Is_partitioned_until tests
[ run is_partitioned_until_test.cpp unit_test_framework : : : : is_partitioned_until_test ]
# Apply_permutation tests
[ run apply_permutation_test.cpp unit_test_framework : : : : apply_permutation_test ]
# Find tests