Refactor library translation units

This commit is contained in:
Vinnie Falco 2023-04-06 23:23:20 -07:00 committed by Alan de Freitas
parent d769abedb5
commit 963bf5a4b7
93 changed files with 222 additions and 359 deletions

View File

@ -317,6 +317,11 @@ elif [ "$DRONE_JOB_BUILDTYPE" == "cmake-install" ]; then
# cp -r $DRONE_WORKSPACE/* libs/$SELF # cp -r $DRONE_WORKSPACE/* libs/$SELF
# git submodule update --init tools/boostdep # git submodule update --init tools/boostdep
git submodule update --init --recursive git submodule update --init --recursive
if [ ! -d "libs/$SELF" ]; then
mkdir -p "libs/$SELF"
fi
find "libs/$SELF" -mindepth 1 -delete
mkdir -p "libs/$SELF" mkdir -p "libs/$SELF"
cp -r "$DRONE_WORKSPACE"/* "libs/$SELF" cp -r "$DRONE_WORKSPACE"/* "libs/$SELF"

View File

@ -8,11 +8,13 @@ name: CI
on: on:
pull_request: pull_request:
push:
branches: branches:
- master - master
- develop - develop
- feature/** - feature/**
push:
branches:
- '*'
concurrency: concurrency:
group: ${{format('{0}:{1}', github.repository, github.ref)}} group: ${{format('{0}:{1}', github.repository, github.ref)}}
@ -324,7 +326,10 @@ jobs:
# cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY # cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
# git submodule update --init tools/boostdep # git submodule update --init tools/boostdep
git submodule update --init --recursive git submodule update --init --recursive
mkdir -p libs/$LIBRARY if [ ! -d "libs/$LIBRARY" ]; then
mkdir -p libs/$LIBRARY
fi
find libs/$LIBRARY -mindepth 1 -delete
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
DEPINST_ARGS+=("$LIBRARY") DEPINST_ARGS+=("$LIBRARY")
@ -453,6 +458,8 @@ jobs:
- { os: ubuntu-22.04, build_shared: OFF, build_type: Debug, generator: 'Unix Makefiles' } - { os: ubuntu-22.04, build_shared: OFF, build_type: Debug, generator: 'Unix Makefiles' }
- { os: windows-2019, build_shared: ON, build_type: Debug, generator: 'Visual Studio 16 2019' } - { os: windows-2019, build_shared: ON, build_type: Debug, generator: 'Visual Studio 16 2019' }
- { os: windows-2019, build_shared: OFF, build_type: Debug, generator: 'Visual Studio 16 2019' } - { os: windows-2019, build_shared: OFF, build_type: Debug, generator: 'Visual Studio 16 2019' }
- { os: windows-2022, build_shared: ON, build_type: Debug, generator: 'Visual Studio 17 2022' }
- { os: windows-2022, build_shared: OFF, build_type: Debug, generator: 'Visual Studio 17 2022' }
timeout-minutes: 120 timeout-minutes: 120
runs-on: ${{matrix.os}} runs-on: ${{matrix.os}}

View File

@ -95,6 +95,13 @@ function(boost_url_setup_properties target)
Boost::variant2 Boost::variant2
) )
endif() endif()
if(BUILD_SHARED_LIBS)
target_compile_definitions(${target} PUBLIC BOOST_URL_DYN_LINK=1)
else()
target_compile_definitions(${target} PUBLIC BOOST_URL_STATIC_LINK=1)
endif()
target_compile_definitions(${target} PRIVATE BOOST_URL_SOURCE)
endfunction() endfunction()
@ -104,13 +111,12 @@ file(GLOB_RECURSE BOOST_URL_HEADERS CONFIGURE_DEPENDS
include/boost/*.natvis include/boost/*.natvis
) )
set(BOOST_URL_SOURCES src/src.cpp) file(GLOB_RECURSE BOOST_URL_SOURCES CONFIGURE_DEPENDS src/*.cpp)
set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY USE_FOLDERS ON)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/include/boost PREFIX "" FILES ${BOOST_URL_HEADERS}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/include/boost PREFIX "" FILES ${BOOST_URL_HEADERS})
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/src PREFIX "" FILES ${BOOST_URL_SOURCES}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/src PREFIX "url" FILES ${BOOST_URL_SOURCES})
add_library(boost_url ${BOOST_URL_HEADERS} ${BOOST_URL_SOURCES}) add_library(boost_url ${BOOST_URL_HEADERS} ${BOOST_URL_SOURCES})
add_library(Boost::url ALIAS boost_url) add_library(Boost::url ALIAS boost_url)
@ -121,6 +127,8 @@ if(BUILD_SHARED_LIBS)
else() else()
target_compile_definitions(boost_url PUBLIC BOOST_URL_STATIC_LINK=1) target_compile_definitions(boost_url PUBLIC BOOST_URL_STATIC_LINK=1)
endif() endif()
target_compile_definitions(boost_url PRIVATE BOOST_URL_SOURCE)
if(BOOST_URL_INSTALL AND NOT BOOST_SUPERPROJECT_VERSION) if(BOOST_URL_INSTALL AND NOT BOOST_SUPERPROJECT_VERSION)

3
antora/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
index.adoc
index.xml
compile_commands.json

2
antora/mrdox.yml Normal file
View File

@ -0,0 +1,2 @@
include:
- ../include

View File

@ -11,19 +11,17 @@
project boost/url project boost/url
: requirements : requirements
$(c11-requires) $(c11-requires)
<link>shared:<define>BOOST_URL_DYN_LINK=1
<link>static:<define>BOOST_URL_STATIC_LINK=1
<define>BOOST_URL_SOURCE <define>BOOST_URL_SOURCE
<toolset>msvc-14.0:<build>no <toolset>msvc-14.0:<build>no
<toolset>gcc-7:<cxxflags>"-Wno-maybe-uninitialized" # variant2 <toolset>gcc-7:<cxxflags>"-Wno-maybe-uninitialized" # variant2
: usage-requirements : common-requirements
<link>shared:<define>BOOST_URL_DYN_LINK=1 <link>shared:<define>BOOST_URL_DYN_LINK=1
<link>static:<define>BOOST_URL_STATIC_LINK=1 <link>static:<define>BOOST_URL_STATIC_LINK=1
: source-location ../src : source-location ../src
; ;
alias url_sources alias url_sources
: src.cpp : [ glob-tree-ex ../src : *.cpp ]
; ;
explicit url_sources ; explicit url_sources ;

View File

@ -49,7 +49,6 @@ Boost.URL offers these features:
* Containers that maintain valid URLs * Containers that maintain valid URLs
* Parsing algorithms that work without exceptions * Parsing algorithms that work without exceptions
* Control over storage and allocation for URLs * Control over storage and allocation for URLs
* Optionally header-only library, without linking
* Support for `-fno-exceptions`, detected automatically * Support for `-fno-exceptions`, detected automatically
* Features that work well on embedded devices * Features that work well on embedded devices
@ -69,19 +68,6 @@ The library requires a compiler supporting at least C++11.
Aliases for standard types, such as __error_code__ or __string_view__, Aliases for standard types, such as __error_code__ or __string_view__,
use their Boost equivalents. use their Boost equivalents.
[heading Header-Only]
To use the library as header-only; that is, to eliminate the requirement
to link a program to a static or dynamic Boost.URL library, simply place
the following line in [*exactly one] source file in your project.
[c++]
```
#include <boost/url/src.hpp>
```
[heading Embedded]
Boost.URL works great on embedded devices. It can be used in a Boost.URL works great on embedded devices. It can be used in a
way that avoids all dynamic memory allocations. Furthermore it way that avoids all dynamic memory allocations. Furthermore it
offers alternative interfaces that work without exceptions if offers alternative interfaces that work without exceptions if

View File

@ -22,8 +22,6 @@ and interface style of the library.
[snippet_headers_3] [snippet_headers_3]
] ]
[h4 Compiled library]
We begin by including the library header file which brings all the symbols into We begin by including the library header file which brings all the symbols into
scope. scope.
@ -33,38 +31,12 @@ scope.
Alternatively, individual headers may be included to obtain the declarations Alternatively, individual headers may be included to obtain the declarations
for specific types. for specific types.
You need to link your program with the Boost.URL built library. You must install binaries Boost.URL is a compiled library. You need to link your program with the Boost.URL built library.
in a location that can be found by your linker. You must install binaries in a location that can be found by your linker.
If you followed the [@http://www.boost.org/doc/libs/release/more/getting_started/index.html Boost Getting Started] If you followed the [@http://www.boost.org/doc/libs/release/more/getting_started/index.html Boost Getting Started]
instructions, that's already been done for you. instructions, that's already been done for you.
[h4 Header-only]
To use Boost.URL as header-only; that is, to eliminate the requirement to link
a program to a static or dynamic Boost.URL library, place the following line
in [*exactly one] new or existing source file in your project.
[c++]
```
// In exactly *one* source file
#include <boost/url/src.hpp>
```
Then define `BOOST_URL_NO_LIB` and include the library headers in any file that
might uses Boost.URL.
[c++]
```
// In any other source file
#define BOOST_URL_NO_LIB
#include <boost/url.hpp>
```
This "header-only" configuration needs `BOOST_URL_NO_LIB` defined when building
with compilers supporting auto-linking, such as Microsoft Visual C++. The macro
instructs Boost to deactivate auto-linking.
[h3 Parsing] [h3 Parsing]
Say you have the following URL that you want to parse: Say you have the following URL that you want to parse:

View File

@ -13,4 +13,4 @@ build-project suffix_list ;
build-project mailto ; build-project mailto ;
build-project magnet ; build-project magnet ;
build-project file_router ; build-project file_router ;
build-project router ; # build-project router ;

View File

@ -7,13 +7,8 @@
# Official repository: https://github.com/boostorg/url # Official repository: https://github.com/boostorg/url
# #
source_group("" FILES add_executable(router router.cpp impl/matches.cpp detail/impl/router.cpp)
router.cpp target_link_libraries(router PRIVATE Boost::url Boost::beast)
)
add_executable(router
router.cpp
)
source_group("" FILES router.cpp)
set_property(TARGET router PROPERTY FOLDER "Examples") set_property(TARGET router PROPERTY FOLDER "Examples")
target_link_libraries(router PRIVATE Boost::url Boost::beast)

View File

@ -18,4 +18,4 @@ project
<toolset>gcc-7:<cxxflags>"-Wno-maybe-uninitialized" <toolset>gcc-7:<cxxflags>"-Wno-maybe-uninitialized"
; ;
exe router : router.cpp ; exe router : router.cpp impl/matches.cpp detail/impl/router.cpp ;

View File

@ -11,6 +11,7 @@
#define BOOST_URL_DETAIL_ROUTER_IPP #define BOOST_URL_DETAIL_ROUTER_IPP
#include "../router.hpp" #include "../router.hpp"
#include <boost/url/decode_view.hpp>
#include <boost/url/grammar/alnum_chars.hpp> #include <boost/url/grammar/alnum_chars.hpp>
#include <boost/url/grammar/alpha_chars.hpp> #include <boost/url/grammar/alpha_chars.hpp>
#include <boost/url/grammar/lut_chars.hpp> #include <boost/url/grammar/lut_chars.hpp>

View File

@ -11,6 +11,7 @@
#define BOOST_URL_DETAIL_ROUTER_HPP #define BOOST_URL_DETAIL_ROUTER_HPP
#include <boost/url/pct_string_view.hpp> #include <boost/url/pct_string_view.hpp>
#include <boost/url/segments_encoded_view.hpp>
#include <boost/url/grammar/delim_rule.hpp> #include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/optional_rule.hpp> #include <boost/url/grammar/optional_rule.hpp>
#include <boost/url/grammar/range_rule.hpp> #include <boost/url/grammar/range_rule.hpp>

View File

@ -11,6 +11,7 @@
#define BOOST_URL_MATCHES_HPP #define BOOST_URL_MATCHES_HPP
#include <boost/url/detail/config.hpp> #include <boost/url/detail/config.hpp>
#include <boost/url/string_view.hpp>
namespace boost { namespace boost {
namespace urls { namespace urls {

View File

@ -20,7 +20,6 @@
#endif #endif
#include "router.hpp" #include "router.hpp"
#include "src.hpp"
#include <boost/beast/core.hpp> #include <boost/beast/core.hpp>
#include <boost/beast/http.hpp> #include <boost/beast/http.hpp>

View File

@ -1,22 +0,0 @@
//
// Copyright (c) 2023 Alan de Freitas (alandefreitas@gmail.com)
//
// 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)
//
// Official repository: https://github.com/boostorg/url
//
#ifndef BOOST_URL_ROUTER_SRC_HPP
#define BOOST_URL_ROUTER_SRC_HPP
#ifndef BOOST_URL_SOURCE
#define BOOST_URL_SOURCE
#endif
// include in one and no more than one source file
#include "detail/impl/router.ipp"
#include "impl/matches.ipp"
#endif

View File

@ -1,23 +0,0 @@
//
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
//
// 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)
//
// Official repository: https://github.com/boostorg/url
//
#ifndef BOOST_URL_DETAIL_IMPL_PATH_IPP
#define BOOST_URL_DETAIL_IMPL_PATH_IPP
#include <boost/url/detail/path.hpp>
namespace boost {
namespace urls {
namespace detail {
} // detail
} // url
} // boost
#endif

View File

@ -12,6 +12,8 @@
#define BOOST_URL_DETAIL_NORMALIZED_HPP #define BOOST_URL_DETAIL_NORMALIZED_HPP
#include <boost/url/string_view.hpp> #include <boost/url/string_view.hpp>
#include <boost/url/segments_encoded_view.hpp>
#include <boost/url/detail/normalize.hpp>
namespace boost { namespace boost {
namespace urls { namespace urls {

View File

@ -10,10 +10,6 @@
#ifndef BOOST_URL_DETAIL_PRINT_HPP #ifndef BOOST_URL_DETAIL_PRINT_HPP
#define BOOST_URL_DETAIL_PRINT_HPP #define BOOST_URL_DETAIL_PRINT_HPP
#ifndef BOOST_URL_SOURCE
#error
#endif
#include <cstdint> #include <cstdint>
#include <type_traits> #include <type_traits>

View File

@ -1,81 +0,0 @@
//
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
//
// 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)
//
// Official repository: https://github.com/boostorg/url
//
#ifndef BOOST_URL_GRAMMAR_DETAIL_IMPL_CI_STRING_IPP
#define BOOST_URL_GRAMMAR_DETAIL_IMPL_CI_STRING_IPP
#include <boost/url/grammar/detail/ci_string.hpp>
namespace boost {
namespace urls {
namespace grammar {
namespace detail {
//------------------------------------------------
// https://lemire.me/blog/2020/04/30/for-case-insensitive-string-comparisons-avoid-char-by-char-functions/
// https://github.com/lemire/Code-used-on-Daniel-Lemire-s-blog/blob/master/2020/04/30/tolower.cpp
bool
ci_is_equal(
string_view s0,
string_view s1) noexcept
{
auto n = s0.size();
auto p1 = s0.data();
auto p2 = s1.data();
char a, b;
// fast loop
while(n--)
{
a = *p1++;
b = *p2++;
if(a != b)
goto slow;
}
return true;
slow:
do
{
if( to_lower(a) !=
to_lower(b))
return false;
a = *p1++;
b = *p2++;
}
while(n--);
return true;
}
//------------------------------------------------
bool
ci_is_less(
string_view s0,
string_view s1) noexcept
{
auto p1 = s0.data();
auto p2 = s1.data();
for(auto n = s0.size();n--;)
{
auto c1 = to_lower(*p1++);
auto c2 = to_lower(*p2++);
if(c1 != c2)
return c1 < c2;
}
// equal
return false;
}
} // detail
} // grammar
} // urls
} // boost
#endif

View File

@ -72,6 +72,12 @@ struct BOOST_SYMBOL_VISIBLE
} }
}; };
BOOST_URL_DECL extern
error_cat_type error_cat;
BOOST_URL_DECL extern
condition_cat_type condition_cat;
} // detail } // detail
inline inline
@ -79,11 +85,10 @@ system::error_code
make_error_code( make_error_code(
error ev) noexcept error ev) noexcept
{ {
static BOOST_SYSTEM_CONSTEXPR
detail::error_cat_type cat{};
return system::error_code{ return system::error_code{
static_cast<std::underlying_type< static_cast<std::underlying_type<
error>::type>(ev), cat}; error>::type>(ev),
detail::error_cat};
} }
inline inline
@ -91,11 +96,10 @@ system::error_condition
make_error_condition( make_error_condition(
condition c) noexcept condition c) noexcept
{ {
static BOOST_SYSTEM_CONSTEXPR
detail::condition_cat_type cat{};
return system::error_condition{ return system::error_condition{
static_cast<std::underlying_type< static_cast<std::underlying_type<
condition>::type>(c), cat}; condition>::type>(c),
detail::condition_cat};
} }
} // grammar } // grammar

View File

@ -12,6 +12,7 @@
#include <boost/url/detail/config.hpp> #include <boost/url/detail/config.hpp>
#include <boost/url/rfc/pct_encoded_rule.hpp> #include <boost/url/rfc/pct_encoded_rule.hpp>
#include <boost/url/rfc/sub_delim_chars.hpp>
#include <boost/url/rfc/unreserved_chars.hpp> #include <boost/url/rfc/unreserved_chars.hpp>
namespace boost { namespace boost {

View File

@ -1,120 +0,0 @@
//
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
// Copyright (c) 2022 Alan de Freitas (alandefreitas@gmail.com)
//
// 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)
//
// Official repository: https://github.com/boostorg/url
//
#ifndef BOOST_URL_SRC_HPP
#define BOOST_URL_SRC_HPP
/*
This file is meant to be included once,
in a translation unit of the program.
*/
// MUST COME FIRST
#ifndef BOOST_URL_SOURCE
#define BOOST_URL_SOURCE
#endif
// We include this in case someone is
// using src.hpp as their main header file
#include <boost/url.hpp>
//------------------------------------------------
//
// url
//
//------------------------------------------------
#include <boost/url/detail/impl/any_params_iter.ipp>
#include <boost/url/detail/impl/any_segments_iter.ipp>
#include <boost/url/detail/impl/decode.ipp>
#include <boost/url/detail/impl/except.ipp>
#include <boost/url/detail/impl/format_args.ipp>
#include <boost/url/detail/impl/normalize.ipp>
#include <boost/url/detail/impl/params_iter_impl.ipp>
#include <boost/url/detail/impl/path.ipp>
#include <boost/url/detail/impl/pattern.ipp>
#include <boost/url/detail/impl/pct_format.ipp>
#include <boost/url/detail/impl/replacement_field_rule.ipp>
#include <boost/url/detail/impl/segments_iter_impl.ipp>
#include <boost/url/detail/impl/url_impl.ipp>
#include <boost/url/impl/authority_view.ipp>
#include <boost/url/impl/decode_view.ipp>
#include <boost/url/impl/error.ipp>
#include <boost/url/impl/ipv4_address.ipp>
#include <boost/url/impl/ipv6_address.ipp>
#include <boost/url/impl/params_base.ipp>
#include <boost/url/impl/params_encoded_base.ipp>
#include <boost/url/impl/params_encoded_ref.ipp>
#include <boost/url/impl/params_encoded_view.ipp>
#include <boost/url/impl/params_ref.ipp>
#include <boost/url/impl/params_view.ipp>
#include <boost/url/impl/parse.ipp>
#include <boost/url/impl/parse_path.ipp>
#include <boost/url/impl/parse_query.ipp>
#include <boost/url/impl/pct_string_view.ipp>
#include <boost/url/impl/scheme.ipp>
#include <boost/url/impl/segments_base.ipp>
#include <boost/url/impl/segments_encoded_base.ipp>
#include <boost/url/impl/segments_encoded_ref.ipp>
#include <boost/url/impl/segments_encoded_view.ipp>
#include <boost/url/impl/segments_ref.ipp>
#include <boost/url/impl/segments_view.ipp>
#include <boost/url/impl/static_url.ipp>
#include <boost/url/impl/url.ipp>
#include <boost/url/impl/url_base.ipp>
#include <boost/url/impl/url_view.ipp>
#include <boost/url/impl/url_view_base.ipp>
//------------------------------------------------
//
// grammar
//
//------------------------------------------------
#include <boost/url/grammar/detail/impl/recycled.ipp>
#include <boost/url/grammar/impl/ci_string.ipp>
#include <boost/url/grammar/impl/dec_octet_rule.ipp>
#include <boost/url/grammar/impl/delim_rule.ipp>
#include <boost/url/grammar/impl/error.ipp>
#include <boost/url/grammar/impl/literal_rule.ipp>
#include <boost/url/grammar/impl/string_view_base.ipp>
//------------------------------------------------
//
// rfc
//
//------------------------------------------------
#include <boost/url/rfc/detail/impl/h16_rule.ipp>
#include <boost/url/rfc/detail/impl/hier_part_rule.ipp>
#include <boost/url/rfc/detail/impl/host_rule.ipp>
#include <boost/url/rfc/detail/impl/ip_literal_rule.ipp>
#include <boost/url/rfc/detail/impl/ipvfuture_rule.ipp>
#include <boost/url/rfc/detail/impl/port_rule.ipp>
#include <boost/url/rfc/detail/impl/relative_part_rule.ipp>
#include <boost/url/rfc/detail/impl/scheme_rule.ipp>
#include <boost/url/rfc/detail/impl/userinfo_rule.ipp>
#include <boost/url/rfc/impl/absolute_uri_rule.ipp>
#include <boost/url/rfc/impl/authority_rule.ipp>
#include <boost/url/rfc/impl/ipv4_address_rule.ipp>
#include <boost/url/rfc/impl/ipv6_address_rule.ipp>
#include <boost/url/rfc/impl/origin_form_rule.ipp>
#include <boost/url/rfc/impl/query_rule.ipp>
#include <boost/url/rfc/impl/relative_ref_rule.ipp>
#include <boost/url/rfc/impl/uri_rule.ipp>
#include <boost/url/rfc/impl/uri_reference_rule.ipp>
#endif

View File

@ -10,7 +10,9 @@
#ifndef BOOST_URL_IMPL_AUTHORITY_VIEW_IPP #ifndef BOOST_URL_IMPL_AUTHORITY_VIEW_IPP
#define BOOST_URL_IMPL_AUTHORITY_VIEW_IPP #define BOOST_URL_IMPL_AUTHORITY_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/authority_view.hpp> #include <boost/url/authority_view.hpp>
#include <boost/url/detail/normalize.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>
#include <boost/url/rfc/authority_rule.hpp> #include <boost/url/rfc/authority_rule.hpp>
#include <boost/url/rfc/pct_encoded_rule.hpp> #include <boost/url/rfc/pct_encoded_rule.hpp>

View File

@ -10,7 +10,9 @@
#ifndef BOOST_URL_IMPL_DECODE_VIEW_IPP #ifndef BOOST_URL_IMPL_DECODE_VIEW_IPP
#define BOOST_URL_IMPL_DECODE_VIEW_IPP #define BOOST_URL_IMPL_DECODE_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/decode_view.hpp> #include <boost/url/decode_view.hpp>
#include <boost/url/grammar/hexdig_chars.hpp>
#include <ostream> #include <ostream>
namespace boost { namespace boost {

View File

@ -10,7 +10,9 @@
#ifndef BOOST_URL_DETAIL_IMPL_ANY_PARAMS_ITER_IPP #ifndef BOOST_URL_DETAIL_IMPL_ANY_PARAMS_ITER_IPP
#define BOOST_URL_DETAIL_IMPL_ANY_PARAMS_ITER_IPP #define BOOST_URL_DETAIL_IMPL_ANY_PARAMS_ITER_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/any_params_iter.hpp> #include <boost/url/detail/any_params_iter.hpp>
#include <boost/url/encode.hpp>
#include <boost/url/string_view.hpp> #include <boost/url/string_view.hpp>
#include <boost/url/rfc/detail/charsets.hpp> #include <boost/url/rfc/detail/charsets.hpp>

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_DETAIL_IMPL_ANY_SEGMENTS_ITER_IPP #ifndef BOOST_URL_DETAIL_IMPL_ANY_SEGMENTS_ITER_IPP
#define BOOST_URL_DETAIL_IMPL_ANY_SEGMENTS_ITER_IPP #define BOOST_URL_DETAIL_IMPL_ANY_SEGMENTS_ITER_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/charsets.hpp>
#include <boost/url/detail/any_segments_iter.hpp> #include <boost/url/detail/any_segments_iter.hpp>
#include <boost/url/string_view.hpp> #include <boost/url/string_view.hpp>
#include <boost/url/encode.hpp> #include <boost/url/encode.hpp>

View File

@ -10,8 +10,10 @@
#ifndef BOOST_URL_DETAIL_IMPL_DECODE_IPP #ifndef BOOST_URL_DETAIL_IMPL_DECODE_IPP
#define BOOST_URL_DETAIL_IMPL_DECODE_IPP #define BOOST_URL_DETAIL_IMPL_DECODE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/decode.hpp> #include <boost/url/detail/decode.hpp>
#include <boost/url/grammar/charset.hpp> #include <boost/url/grammar/charset.hpp>
#include <boost/url/grammar/hexdig_chars.hpp>
#include <memory> #include <memory>
namespace boost { namespace boost {

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_DETAIL_IMPL_EXCEPT_IPP #ifndef BOOST_URL_DETAIL_IMPL_EXCEPT_IPP
#define BOOST_URL_DETAIL_IMPL_EXCEPT_IPP #define BOOST_URL_DETAIL_IMPL_EXCEPT_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/except.hpp> #include <boost/url/detail/except.hpp>
#include <boost/throw_exception.hpp> #include <boost/throw_exception.hpp>
#include <boost/system/system_error.hpp> #include <boost/system/system_error.hpp>

View File

@ -10,9 +10,14 @@
#ifndef BOOST_URL_DETAIL_IMPL_FORMAT_ARGS_IPP #ifndef BOOST_URL_DETAIL_IMPL_FORMAT_ARGS_IPP
#define BOOST_URL_DETAIL_IMPL_FORMAT_ARGS_IPP #define BOOST_URL_DETAIL_IMPL_FORMAT_ARGS_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/encode.hpp>
#include <boost/url/detail/format_args.hpp> #include <boost/url/detail/format_args.hpp>
#include <boost/url/detail/replacement_field_rule.hpp> #include <boost/url/detail/replacement_field_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/optional_rule.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/tuple_rule.hpp>
#include <boost/url/grammar/unsigned_rule.hpp> #include <boost/url/grammar/unsigned_rule.hpp>
namespace boost { namespace boost {

View File

@ -11,9 +11,14 @@
#ifndef BOOST_URL_DETAIL_IMPL_NORMALIZE_IPP #ifndef BOOST_URL_DETAIL_IMPL_NORMALIZE_IPP
#define BOOST_URL_DETAIL_IMPL_NORMALIZE_IPP #define BOOST_URL_DETAIL_IMPL_NORMALIZE_IPP
#include <boost/url/detail/normalize.hpp> #include <boost/url/detail/config.hpp>
#include <boost/url/decode_view.hpp>
#include <boost/url/detail/decode.hpp>
#include <boost/url/segments_encoded_view.hpp> #include <boost/url/segments_encoded_view.hpp>
#include <boost/url/detail/normalize.hpp>
#include <boost/url/grammar/ci_string.hpp>
#include <boost/assert.hpp> #include <boost/assert.hpp>
#include <boost/core/ignore_unused.hpp>
#include <cstring> #include <cstring>
namespace boost { namespace boost {

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_DETAIL_IMPL_PARAMS_ITER_IMPL_IPP #ifndef BOOST_URL_DETAIL_IMPL_PARAMS_ITER_IMPL_IPP
#define BOOST_URL_DETAIL_IMPL_PARAMS_ITER_IMPL_IPP #define BOOST_URL_DETAIL_IMPL_PARAMS_ITER_IMPL_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/params_iter_impl.hpp> #include <boost/url/detail/params_iter_impl.hpp>
#include <boost/assert.hpp> #include <boost/assert.hpp>

View File

@ -10,9 +10,14 @@
#ifndef BOOST_URL_DETAIL_IMPL_PATTERN_IPP #ifndef BOOST_URL_DETAIL_IMPL_PATTERN_IPP
#define BOOST_URL_DETAIL_IMPL_PATTERN_IPP #define BOOST_URL_DETAIL_IMPL_PATTERN_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/pattern.hpp> #include <boost/url/detail/pattern.hpp>
#include <boost/url/detail/pct_format.hpp> #include <boost/url/detail/pct_format.hpp>
#include <boost/url/detail/replacement_field_rule.hpp> #include <boost/url/detail/replacement_field_rule.hpp>
#include <boost/url/grammar/alpha_chars.hpp>
#include <boost/url/grammar/optional_rule.hpp>
#include <boost/url/grammar/token_rule.hpp>
#include <boost/url/rfc/detail/charsets.hpp>
#include <boost/url/rfc/detail/host_rule.hpp> #include <boost/url/rfc/detail/host_rule.hpp>
#include <boost/url/rfc/detail/path_rules.hpp> #include <boost/url/rfc/detail/path_rules.hpp>
#include <boost/url/rfc/detail/port_rule.hpp> #include <boost/url/rfc/detail/port_rule.hpp>

View File

@ -10,7 +10,9 @@
#ifndef BOOST_URL_DETAIL_IMPL_PCT_FORMAT_IPP #ifndef BOOST_URL_DETAIL_IMPL_PCT_FORMAT_IPP
#define BOOST_URL_DETAIL_IMPL_PCT_FORMAT_IPP #define BOOST_URL_DETAIL_IMPL_PCT_FORMAT_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/pct_format.hpp> #include <boost/url/detail/pct_format.hpp>
#include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/unsigned_rule.hpp> #include <boost/url/grammar/unsigned_rule.hpp>
namespace boost { namespace boost {

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_DETAIL_IMPL_REPLACEMENT_FIELD_RULE_IPP #ifndef BOOST_URL_DETAIL_IMPL_REPLACEMENT_FIELD_RULE_IPP
#define BOOST_URL_DETAIL_IMPL_REPLACEMENT_FIELD_RULE_IPP #define BOOST_URL_DETAIL_IMPL_REPLACEMENT_FIELD_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/replacement_field_rule.hpp> #include <boost/url/detail/replacement_field_rule.hpp>
#include <boost/url/grammar/alnum_chars.hpp> #include <boost/url/grammar/alnum_chars.hpp>
#include <boost/url/grammar/alpha_chars.hpp> #include <boost/url/grammar/alpha_chars.hpp>
@ -19,6 +20,7 @@
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/token_rule.hpp> #include <boost/url/grammar/token_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp> #include <boost/url/grammar/tuple_rule.hpp>
#include <boost/url/grammar/vchars.hpp>
namespace boost { namespace boost {
namespace urls { namespace urls {

View File

@ -11,6 +11,8 @@
#ifndef BOOST_URL_DETAIL_IMPL_SEGMENTS_ITER_IMPL_IPP #ifndef BOOST_URL_DETAIL_IMPL_SEGMENTS_ITER_IMPL_IPP
#define BOOST_URL_DETAIL_IMPL_SEGMENTS_ITER_IMPL_IPP #define BOOST_URL_DETAIL_IMPL_SEGMENTS_ITER_IMPL_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/path.hpp>
#include <boost/url/detail/segments_iter_impl.hpp> #include <boost/url/detail/segments_iter_impl.hpp>
#include <boost/url/rfc/detail/path_rules.hpp> #include <boost/url/rfc/detail/path_rules.hpp>
#include <boost/assert.hpp> #include <boost/assert.hpp>

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_DETAIL_IMPL_URL_IMPL_IPP #ifndef BOOST_URL_DETAIL_IMPL_URL_IMPL_IPP
#define BOOST_URL_DETAIL_IMPL_URL_IMPL_IPP #define BOOST_URL_DETAIL_IMPL_URL_IMPL_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/path.hpp>
#include <boost/url/detail/url_impl.hpp> #include <boost/url/detail/url_impl.hpp>
#include <boost/url/authority_view.hpp> #include <boost/url/authority_view.hpp>
#include <boost/assert.hpp> #include <boost/assert.hpp>

View File

@ -10,7 +10,9 @@
#ifndef BOOST_URL_IMPL_ERROR_IPP #ifndef BOOST_URL_IMPL_ERROR_IPP
#define BOOST_URL_IMPL_ERROR_IPP #define BOOST_URL_IMPL_ERROR_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/error.hpp> #include <boost/url/error.hpp>
#include <boost/url/grammar/error.hpp>
namespace boost { namespace boost {
namespace urls { namespace urls {
@ -67,7 +69,7 @@ default_error_condition(
case error::bad_pct_hexdig: case error::bad_pct_hexdig:
case error::incomplete_encoding: case error::incomplete_encoding:
case error::missing_pct_hexdig: case error::missing_pct_hexdig:
return grammar::condition::fatal; return grammar::condition::fatal;
} }
} }
@ -81,11 +83,7 @@ return grammar::condition::fatal;
# pragma warning( disable : 4592 ) # pragma warning( disable : 4592 )
#endif #endif
#if defined(__cpp_constinit) && __cpp_constinit >= 201907L
constinit error_cat_type error_cat;
#else
error_cat_type error_cat; error_cat_type error_cat;
#endif
#if defined(_MSC_VER) && _MSC_VER <= 1900 #if defined(_MSC_VER) && _MSC_VER <= 1900
# pragma warning( pop ) # pragma warning( pop )

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_GRAMMAR_IMPL_CI_STRING_IPP #ifndef BOOST_URL_GRAMMAR_IMPL_CI_STRING_IPP
#define BOOST_URL_GRAMMAR_IMPL_CI_STRING_IPP #define BOOST_URL_GRAMMAR_IMPL_CI_STRING_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/grammar/ci_string.hpp> #include <boost/url/grammar/ci_string.hpp>
namespace boost { namespace boost {

View File

@ -10,8 +10,11 @@
#ifndef BOOST_URL_IMPL_GRAMMAR_DEC_OCTET_RULE_IPP #ifndef BOOST_URL_IMPL_GRAMMAR_DEC_OCTET_RULE_IPP
#define BOOST_URL_IMPL_GRAMMAR_DEC_OCTET_RULE_IPP #define BOOST_URL_IMPL_GRAMMAR_DEC_OCTET_RULE_IPP
#include <boost/url/grammar/dec_octet_rule.hpp> #include <boost/url/detail/config.hpp>
#include <boost/url/grammar/charset.hpp> #include <boost/url/grammar/charset.hpp>
#include <boost/url/grammar/dec_octet_rule.hpp>
#include <boost/url/grammar/digit_chars.hpp>
#include <boost/url/grammar/error.hpp>
namespace boost { namespace boost {
namespace urls { namespace urls {

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_GRAMMAR_IMPL_DELIM_RULE_IPP #ifndef BOOST_URL_GRAMMAR_IMPL_DELIM_RULE_IPP
#define BOOST_URL_GRAMMAR_IMPL_DELIM_RULE_IPP #define BOOST_URL_GRAMMAR_IMPL_DELIM_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/detail/config.hpp>
#include <boost/url/grammar/delim_rule.hpp> #include <boost/url/grammar/delim_rule.hpp>
namespace boost { namespace boost {

View File

@ -7,9 +7,8 @@
// Official repository: https://github.com/boostorg/url // Official repository: https://github.com/boostorg/url
// //
#ifndef BOOST_URL_GRAMMAR_DETAIL_IMPL_RECYCLED_IPP #include <boost/url/detail/config.hpp>
#define BOOST_URL_GRAMMAR_DETAIL_IMPL_RECYCLED_IPP #include <boost/url/grammar/detail/recycled.hpp>
#include <cstdlib> #include <cstdlib>
#include <utility> #include <utility>
#include <atomic> #include <atomic>
@ -98,5 +97,3 @@ recycled_remove_impl(
} // grammar } // grammar
} // urls } // urls
} // boost } // boost
#endif

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_GRAMMAR_IMPL_ERROR_IPP #ifndef BOOST_URL_GRAMMAR_IMPL_ERROR_IPP
#define BOOST_URL_GRAMMAR_IMPL_ERROR_IPP #define BOOST_URL_GRAMMAR_IMPL_ERROR_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/grammar/error.hpp> #include <boost/url/grammar/error.hpp>
namespace boost { namespace boost {
@ -95,6 +96,23 @@ message(
} }
} }
//-----------------------------------------------
// msvc 14.0 has a bug that warns about inability
// to use constexpr construction here, even though
// there's no constexpr construction
#if defined(_MSC_VER) && _MSC_VER <= 1900
# pragma warning( push )
# pragma warning( disable : 4592 )
#endif
error_cat_type error_cat;
condition_cat_type condition_cat;
#if defined(_MSC_VER) && _MSC_VER <= 1900
# pragma warning( pop )
#endif
} // detail } // detail
} // grammar } // grammar

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_GRAMMAR_IMPL_LITERAL_RULE_IPP #ifndef BOOST_URL_GRAMMAR_IMPL_LITERAL_RULE_IPP
#define BOOST_URL_GRAMMAR_IMPL_LITERAL_RULE_IPP #define BOOST_URL_GRAMMAR_IMPL_LITERAL_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/grammar/error.hpp>
#include <boost/url/grammar/literal_rule.hpp> #include <boost/url/grammar/literal_rule.hpp>
#include <boost/assert.hpp> #include <boost/assert.hpp>
#include <cstring> #include <cstring>

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_IMPL_STRING_VIEW_BASE_IPP #ifndef BOOST_URL_IMPL_STRING_VIEW_BASE_IPP
#define BOOST_URL_IMPL_STRING_VIEW_BASE_IPP #define BOOST_URL_IMPL_STRING_VIEW_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/grammar/string_view_base.hpp> #include <boost/url/grammar/string_view_base.hpp>
#include <ostream> #include <ostream>

View File

@ -10,8 +10,10 @@
#ifndef BOOST_URL_IMPL_IPV4_ADDRESS_IPP #ifndef BOOST_URL_IMPL_IPV4_ADDRESS_IPP
#define BOOST_URL_IMPL_IPV4_ADDRESS_IPP #define BOOST_URL_IMPL_IPV4_ADDRESS_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/ipv4_address.hpp> #include <boost/url/ipv4_address.hpp>
#include <boost/url/detail/except.hpp> #include <boost/url/detail/except.hpp>
#include <boost/url/grammar/parse.hpp>
#include <boost/url/rfc/ipv4_address_rule.hpp> #include <boost/url/rfc/ipv4_address_rule.hpp>
#include <cstring> #include <cstring>

View File

@ -10,7 +10,9 @@
#ifndef BOOST_URL_IMPL_IPV6_ADDRESS_IPP #ifndef BOOST_URL_IMPL_IPV6_ADDRESS_IPP
#define BOOST_URL_IMPL_IPV6_ADDRESS_IPP #define BOOST_URL_IMPL_IPV6_ADDRESS_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/ipv6_address.hpp> #include <boost/url/ipv6_address.hpp>
#include <boost/url/ipv4_address.hpp>
#include <boost/url/rfc/ipv6_address_rule.hpp> #include <boost/url/rfc/ipv6_address_rule.hpp>
#include <boost/url/detail/except.hpp> #include <boost/url/detail/except.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>

View File

@ -11,7 +11,10 @@
#ifndef BOOST_URL_IMPL_PARAMS_BASE_IPP #ifndef BOOST_URL_IMPL_PARAMS_BASE_IPP
#define BOOST_URL_IMPL_PARAMS_BASE_IPP #define BOOST_URL_IMPL_PARAMS_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/decode_view.hpp>
#include <boost/url/params_base.hpp> #include <boost/url/params_base.hpp>
#include <boost/url/grammar/ci_string.hpp>
#include <ostream> #include <ostream>
namespace boost { namespace boost {

View File

@ -11,7 +11,10 @@
#ifndef BOOST_URL_IMPL_PARAMS_ENCODED_BASE_IPP #ifndef BOOST_URL_IMPL_PARAMS_ENCODED_BASE_IPP
#define BOOST_URL_IMPL_PARAMS_ENCODED_BASE_IPP #define BOOST_URL_IMPL_PARAMS_ENCODED_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/decode_view.hpp>
#include <boost/url/params_encoded_base.hpp> #include <boost/url/params_encoded_base.hpp>
#include <boost/url/grammar/ci_string.hpp>
#include <ostream> #include <ostream>
namespace boost { namespace boost {

View File

@ -11,6 +11,8 @@
#ifndef BOOST_URL_IMPL_PARAMS_ENCODED_REF_IPP #ifndef BOOST_URL_IMPL_PARAMS_ENCODED_REF_IPP
#define BOOST_URL_IMPL_PARAMS_ENCODED_REF_IPP #define BOOST_URL_IMPL_PARAMS_ENCODED_REF_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/decode_view.hpp>
#include <boost/url/params_encoded_ref.hpp> #include <boost/url/params_encoded_ref.hpp>
#include <boost/url/params_encoded_view.hpp> #include <boost/url/params_encoded_view.hpp>
#include <boost/url/url_base.hpp> #include <boost/url/url_base.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_PARAMS_ENCODED_VIEW_IPP #ifndef BOOST_URL_IMPL_PARAMS_ENCODED_VIEW_IPP
#define BOOST_URL_IMPL_PARAMS_ENCODED_VIEW_IPP #define BOOST_URL_IMPL_PARAMS_ENCODED_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/params_encoded_view.hpp> #include <boost/url/params_encoded_view.hpp>
#include <boost/url/parse_query.hpp> #include <boost/url/parse_query.hpp>

View File

@ -11,6 +11,8 @@
#ifndef BOOST_URL_IMPL_PARAMS_REF_IPP #ifndef BOOST_URL_IMPL_PARAMS_REF_IPP
#define BOOST_URL_IMPL_PARAMS_REF_IPP #define BOOST_URL_IMPL_PARAMS_REF_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/decode_view.hpp>
#include <boost/url/params_ref.hpp> #include <boost/url/params_ref.hpp>
#include <boost/url/params_view.hpp> #include <boost/url/params_view.hpp>
#include <boost/url/url_base.hpp> #include <boost/url/url_base.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_PARAMS_VIEW_IPP #ifndef BOOST_URL_IMPL_PARAMS_VIEW_IPP
#define BOOST_URL_IMPL_PARAMS_VIEW_IPP #define BOOST_URL_IMPL_PARAMS_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/params_view.hpp> #include <boost/url/params_view.hpp>
#include <boost/url/parse_query.hpp> #include <boost/url/parse_query.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_PARSE_IPP #ifndef BOOST_URL_IMPL_PARSE_IPP
#define BOOST_URL_IMPL_PARSE_IPP #define BOOST_URL_IMPL_PARSE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/parse.hpp> #include <boost/url/parse.hpp>
#include <boost/url/rfc/absolute_uri_rule.hpp> #include <boost/url/rfc/absolute_uri_rule.hpp>
#include <boost/url/rfc/relative_ref_rule.hpp> #include <boost/url/rfc/relative_ref_rule.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_PARSE_PATH_IPP #ifndef BOOST_URL_IMPL_PARSE_PATH_IPP
#define BOOST_URL_IMPL_PARSE_PATH_IPP #define BOOST_URL_IMPL_PARSE_PATH_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/parse_path.hpp> #include <boost/url/parse_path.hpp>
#include <boost/url/error.hpp> #include <boost/url/error.hpp>
#include <boost/url/detail/path.hpp> #include <boost/url/detail/path.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_PARSE_QUERY_IPP #ifndef BOOST_URL_IMPL_PARSE_QUERY_IPP
#define BOOST_URL_IMPL_PARSE_QUERY_IPP #define BOOST_URL_IMPL_PARSE_QUERY_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/parse_query.hpp> #include <boost/url/parse_query.hpp>
#include <boost/url/rfc/query_rule.hpp> #include <boost/url/rfc/query_rule.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_IMPL_PCT_STRING_VIEW_IPP #ifndef BOOST_URL_IMPL_PCT_STRING_VIEW_IPP
#define BOOST_URL_IMPL_PCT_STRING_VIEW_IPP #define BOOST_URL_IMPL_PCT_STRING_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/error.hpp>
#include <boost/url/pct_string_view.hpp> #include <boost/url/pct_string_view.hpp>
#include <boost/url/detail/decode.hpp> #include <boost/url/detail/decode.hpp>
#include <boost/url/grammar/hexdig_chars.hpp> #include <boost/url/grammar/hexdig_chars.hpp>

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_RFC_IMPL_ABSOLUTE_URI_RULE_IPP #ifndef BOOST_URL_RFC_IMPL_ABSOLUTE_URI_RULE_IPP
#define BOOST_URL_RFC_IMPL_ABSOLUTE_URI_RULE_IPP #define BOOST_URL_RFC_IMPL_ABSOLUTE_URI_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/absolute_uri_rule.hpp> #include <boost/url/rfc/absolute_uri_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp> #include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp> #include <boost/url/grammar/tuple_rule.hpp>

View File

@ -10,8 +10,10 @@
#ifndef BOOST_URL_RFC_IMPL_AUTHORITY_RULE_IPP #ifndef BOOST_URL_RFC_IMPL_AUTHORITY_RULE_IPP
#define BOOST_URL_RFC_IMPL_AUTHORITY_RULE_IPP #define BOOST_URL_RFC_IMPL_AUTHORITY_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/authority_rule.hpp> #include <boost/url/rfc/authority_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp> #include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/optional_rule.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/tuple_rule.hpp> #include <boost/url/grammar/tuple_rule.hpp>
#include <boost/url/rfc/detail/host_rule.hpp> #include <boost/url/rfc/detail/host_rule.hpp>

View File

@ -10,9 +10,11 @@
#ifndef BOOST_URL_RFC_DETAIL_IMPL_H16_RULE_HPP #ifndef BOOST_URL_RFC_DETAIL_IMPL_H16_RULE_HPP
#define BOOST_URL_RFC_DETAIL_IMPL_H16_RULE_HPP #define BOOST_URL_RFC_DETAIL_IMPL_H16_RULE_HPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/h16_rule.hpp> #include <boost/url/rfc/detail/h16_rule.hpp>
#include <boost/url/grammar/charset.hpp> #include <boost/url/grammar/charset.hpp>
#include <boost/url/grammar/error.hpp> #include <boost/url/grammar/error.hpp>
#include <boost/url/grammar/hexdig_chars.hpp>
#include <boost/assert.hpp> #include <boost/assert.hpp>
namespace boost { namespace boost {

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_RFC_DETAIL_IMPL_HIER_PART_RULE_IPP #ifndef BOOST_URL_RFC_DETAIL_IMPL_HIER_PART_RULE_IPP
#define BOOST_URL_RFC_DETAIL_IMPL_HIER_PART_RULE_IPP #define BOOST_URL_RFC_DETAIL_IMPL_HIER_PART_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/hier_part_rule.hpp> #include <boost/url/rfc/detail/hier_part_rule.hpp>
#include <boost/url/rfc/detail/path_rules.hpp> #include <boost/url/rfc/detail/path_rules.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_RFC_DETAIL_IMPL_HOST_RULE_IPP #ifndef BOOST_URL_RFC_DETAIL_IMPL_HOST_RULE_IPP
#define BOOST_URL_RFC_DETAIL_IMPL_HOST_RULE_IPP #define BOOST_URL_RFC_DETAIL_IMPL_HOST_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/ipv4_address_rule.hpp>
#include <boost/url/rfc/detail/host_rule.hpp> #include <boost/url/rfc/detail/host_rule.hpp>
#include <boost/url/rfc/detail/ip_literal_rule.hpp> #include <boost/url/rfc/detail/ip_literal_rule.hpp>
#include <boost/url/rfc/detail/reg_name_rule.hpp> #include <boost/url/rfc/detail/reg_name_rule.hpp>

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_IMPL_IP_LITERAL_RULE_IPP #ifndef BOOST_URL_IMPL_IP_LITERAL_RULE_IPP
#define BOOST_URL_IMPL_IP_LITERAL_RULE_IPP #define BOOST_URL_IMPL_IP_LITERAL_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/ipv6_address_rule.hpp>
#include <boost/url/rfc/detail/ip_literal_rule.hpp> #include <boost/url/rfc/detail/ip_literal_rule.hpp>
#include <boost/url/ipv6_address.hpp> #include <boost/url/ipv6_address.hpp>
#include <boost/url/grammar/delim_rule.hpp> #include <boost/url/grammar/delim_rule.hpp>

View File

@ -10,11 +10,13 @@
#ifndef BOOST_URL_DETAIL_IMPL_IPVFUTURE_RULE_IPP #ifndef BOOST_URL_DETAIL_IMPL_IPVFUTURE_RULE_IPP
#define BOOST_URL_DETAIL_IMPL_IPVFUTURE_RULE_IPP #define BOOST_URL_DETAIL_IMPL_IPVFUTURE_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/ipvfuture_rule.hpp> #include <boost/url/rfc/detail/ipvfuture_rule.hpp>
#include <boost/url/error.hpp> #include <boost/url/error.hpp>
#include <boost/url/rfc/detail/charsets.hpp> #include <boost/url/rfc/detail/charsets.hpp>
#include <boost/url/grammar/charset.hpp> #include <boost/url/grammar/charset.hpp>
#include <boost/url/grammar/delim_rule.hpp> #include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/hexdig_chars.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/token_rule.hpp> #include <boost/url/grammar/token_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp> #include <boost/url/grammar/tuple_rule.hpp>

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_IMPL_PORT_RULE_IPP #ifndef BOOST_URL_IMPL_PORT_RULE_IPP
#define BOOST_URL_IMPL_PORT_RULE_IPP #define BOOST_URL_IMPL_PORT_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/port_rule.hpp> #include <boost/url/rfc/detail/port_rule.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/token_rule.hpp> #include <boost/url/grammar/token_rule.hpp>

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_RFC_DETAIL_IMPL_RELATIVE_PART_RULE_IPP #ifndef BOOST_URL_RFC_DETAIL_IMPL_RELATIVE_PART_RULE_IPP
#define BOOST_URL_RFC_DETAIL_IMPL_RELATIVE_PART_RULE_IPP #define BOOST_URL_RFC_DETAIL_IMPL_RELATIVE_PART_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/relative_part_rule.hpp> #include <boost/url/rfc/detail/relative_part_rule.hpp>
#include <boost/url/rfc/detail/path_rules.hpp> #include <boost/url/rfc/detail/path_rules.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>

View File

@ -10,10 +10,13 @@
#ifndef BOOST_URL_IMPL_SCHEME_RULE_IPP #ifndef BOOST_URL_IMPL_SCHEME_RULE_IPP
#define BOOST_URL_IMPL_SCHEME_RULE_IPP #define BOOST_URL_IMPL_SCHEME_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/scheme_rule.hpp> #include <boost/url/rfc/detail/scheme_rule.hpp>
#include <boost/url/grammar/alpha_chars.hpp>
#include <boost/url/grammar/delim_rule.hpp> #include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp> #include <boost/url/grammar/lut_chars.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/tuple_rule.hpp>
namespace boost { namespace boost {
namespace urls { namespace urls {

View File

@ -10,9 +10,12 @@
#ifndef BOOST_URL_RFC_DETAIL_IMPL_USERINFO_RULE_IPP #ifndef BOOST_URL_RFC_DETAIL_IMPL_USERINFO_RULE_IPP
#define BOOST_URL_RFC_DETAIL_IMPL_USERINFO_RULE_IPP #define BOOST_URL_RFC_DETAIL_IMPL_USERINFO_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/detail/userinfo_rule.hpp> #include <boost/url/rfc/detail/userinfo_rule.hpp>
#include <boost/url/string_view.hpp> #include <boost/url/string_view.hpp>
#include <boost/url/rfc/pct_encoded_rule.hpp> #include <boost/url/rfc/pct_encoded_rule.hpp>
#include <boost/url/rfc/sub_delim_chars.hpp>
#include <boost/url/rfc/unreserved_chars.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>
namespace boost { namespace boost {

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_RFC_IMPL_IPV4_ADDRESS_RULE_IPP #ifndef BOOST_URL_RFC_IMPL_IPV4_ADDRESS_RULE_IPP
#define BOOST_URL_RFC_IMPL_IPV4_ADDRESS_RULE_IPP #define BOOST_URL_RFC_IMPL_IPV4_ADDRESS_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/ipv4_address_rule.hpp> #include <boost/url/rfc/ipv4_address_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp> #include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/dec_octet_rule.hpp> #include <boost/url/grammar/dec_octet_rule.hpp>

View File

@ -10,10 +10,12 @@
#ifndef BOOST_URL_RFC_IMPL_IPV6_ADDRESS_RULE_IPP #ifndef BOOST_URL_RFC_IMPL_IPV6_ADDRESS_RULE_IPP
#define BOOST_URL_RFC_IMPL_IPV6_ADDRESS_RULE_IPP #define BOOST_URL_RFC_IMPL_IPV6_ADDRESS_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/ipv6_address_rule.hpp> #include <boost/url/rfc/ipv6_address_rule.hpp>
#include <boost/url/rfc/ipv4_address_rule.hpp> #include <boost/url/rfc/ipv4_address_rule.hpp>
#include <boost/url/rfc/detail/h16_rule.hpp> #include <boost/url/rfc/detail/h16_rule.hpp>
#include <boost/url/grammar/charset.hpp> #include <boost/url/grammar/charset.hpp>
#include <boost/url/grammar/hexdig_chars.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>
#include <boost/assert.hpp> #include <boost/assert.hpp>
#include <cstring> #include <cstring>

View File

@ -10,9 +10,11 @@
#ifndef BOOST_URL_RFC_IMPL_ORIGIN_FORM_RULE_IPP #ifndef BOOST_URL_RFC_IMPL_ORIGIN_FORM_RULE_IPP
#define BOOST_URL_RFC_IMPL_ORIGIN_FORM_RULE_IPP #define BOOST_URL_RFC_IMPL_ORIGIN_FORM_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/origin_form_rule.hpp> #include <boost/url/rfc/origin_form_rule.hpp>
#include <boost/url/rfc/query_rule.hpp> #include <boost/url/rfc/query_rule.hpp>
#include <boost/url/rfc/detail/path_rules.hpp> #include <boost/url/rfc/detail/path_rules.hpp>
#include <boost/url/rfc/detail/query_part_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp> #include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/range_rule.hpp> #include <boost/url/grammar/range_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp> #include <boost/url/grammar/tuple_rule.hpp>

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_RFC_IMPL_QUERY_RULE_IPP #ifndef BOOST_URL_RFC_IMPL_QUERY_RULE_IPP
#define BOOST_URL_RFC_IMPL_QUERY_RULE_IPP #define BOOST_URL_RFC_IMPL_QUERY_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/query_rule.hpp> #include <boost/url/rfc/query_rule.hpp>
#include <boost/url/rfc/detail/charsets.hpp> #include <boost/url/rfc/detail/charsets.hpp>
#include <boost/url/error.hpp> #include <boost/url/error.hpp>

View File

@ -10,9 +10,11 @@
#ifndef BOOST_URL_RFC_IMPL_RELATIVE_REF_RULE_IPP #ifndef BOOST_URL_RFC_IMPL_RELATIVE_REF_RULE_IPP
#define BOOST_URL_RFC_IMPL_RELATIVE_REF_RULE_IPP #define BOOST_URL_RFC_IMPL_RELATIVE_REF_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/relative_ref_rule.hpp> #include <boost/url/rfc/relative_ref_rule.hpp>
#include <boost/url/rfc/query_rule.hpp> #include <boost/url/rfc/query_rule.hpp>
#include <boost/url/rfc/detail/fragment_part_rule.hpp> #include <boost/url/rfc/detail/fragment_part_rule.hpp>
#include <boost/url/rfc/detail/query_part_rule.hpp>
#include <boost/url/rfc/detail/relative_part_rule.hpp> #include <boost/url/rfc/detail/relative_part_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp> #include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp> #include <boost/url/grammar/tuple_rule.hpp>

View File

@ -10,11 +10,13 @@
#ifndef BOOST_URL_RFC_IMPL_URI_REFERENCE_RULE_IPP #ifndef BOOST_URL_RFC_IMPL_URI_REFERENCE_RULE_IPP
#define BOOST_URL_RFC_IMPL_URI_REFERENCE_RULE_IPP #define BOOST_URL_RFC_IMPL_URI_REFERENCE_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/uri_reference_rule.hpp> #include <boost/url/rfc/uri_reference_rule.hpp>
#include <boost/url/rfc/uri_rule.hpp> #include <boost/url/rfc/uri_rule.hpp>
#include <boost/url/rfc/relative_ref_rule.hpp> #include <boost/url/rfc/relative_ref_rule.hpp>
#include <boost/url/grammar/parse.hpp> #include <boost/url/grammar/parse.hpp>
#include <boost/url/grammar/variant_rule.hpp> #include <boost/url/grammar/variant_rule.hpp>
#include <boost/variant2/variant.hpp>
namespace boost { namespace boost {
namespace urls { namespace urls {
@ -38,9 +40,9 @@ parse(
{ {
default: default:
case 0: case 0:
return get<0>(*rv); return boost::variant2::get<0>(*rv);
case 1: case 1:
return get<1>(*rv); return boost::variant2::get<1>(*rv);
} }
} }

View File

@ -10,10 +10,12 @@
#ifndef BOOST_URL_RFC_IMPL_URI_RULE_IPP #ifndef BOOST_URL_RFC_IMPL_URI_RULE_IPP
#define BOOST_URL_RFC_IMPL_URI_RULE_IPP #define BOOST_URL_RFC_IMPL_URI_RULE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/rfc/uri_rule.hpp> #include <boost/url/rfc/uri_rule.hpp>
#include <boost/url/rfc/query_rule.hpp> #include <boost/url/rfc/query_rule.hpp>
#include <boost/url/rfc/detail/fragment_part_rule.hpp> #include <boost/url/rfc/detail/fragment_part_rule.hpp>
#include <boost/url/rfc/detail/hier_part_rule.hpp> #include <boost/url/rfc/detail/hier_part_rule.hpp>
#include <boost/url/rfc/detail/query_part_rule.hpp>
#include <boost/url/rfc/detail/scheme_rule.hpp> #include <boost/url/rfc/detail/scheme_rule.hpp>
#include <boost/url/grammar/delim_rule.hpp> #include <boost/url/grammar/delim_rule.hpp>
#include <boost/url/grammar/tuple_rule.hpp> #include <boost/url/grammar/tuple_rule.hpp>

View File

@ -10,6 +10,7 @@
#ifndef BOOST_URL_IMPL_SCHEME_IPP #ifndef BOOST_URL_IMPL_SCHEME_IPP
#define BOOST_URL_IMPL_SCHEME_IPP #define BOOST_URL_IMPL_SCHEME_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/scheme.hpp> #include <boost/url/scheme.hpp>
#include <boost/url/grammar/ci_string.hpp> #include <boost/url/grammar/ci_string.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_SEGMENTS_BASE_IPP #ifndef BOOST_URL_IMPL_SEGMENTS_BASE_IPP
#define BOOST_URL_IMPL_SEGMENTS_BASE_IPP #define BOOST_URL_IMPL_SEGMENTS_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/segments_base.hpp> #include <boost/url/segments_base.hpp>
#include <ostream> #include <ostream>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_SEGMENTS_ENCODED_BASE_IPP #ifndef BOOST_URL_IMPL_SEGMENTS_ENCODED_BASE_IPP
#define BOOST_URL_IMPL_SEGMENTS_ENCODED_BASE_IPP #define BOOST_URL_IMPL_SEGMENTS_ENCODED_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/segments_encoded_base.hpp> #include <boost/url/segments_encoded_base.hpp>
#include <boost/assert.hpp> #include <boost/assert.hpp>
#include <ostream> #include <ostream>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_SEGMENTS_ENCODED_REF_IPP #ifndef BOOST_URL_IMPL_SEGMENTS_ENCODED_REF_IPP
#define BOOST_URL_IMPL_SEGMENTS_ENCODED_REF_IPP #define BOOST_URL_IMPL_SEGMENTS_ENCODED_REF_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/segments_encoded_ref.hpp> #include <boost/url/segments_encoded_ref.hpp>
#include <boost/url/url.hpp> #include <boost/url/url.hpp>
#include <boost/url/detail/path.hpp> #include <boost/url/detail/path.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_SEGMENTS_ENCODED_VIEW_IPP #ifndef BOOST_URL_IMPL_SEGMENTS_ENCODED_VIEW_IPP
#define BOOST_URL_IMPL_SEGMENTS_ENCODED_VIEW_IPP #define BOOST_URL_IMPL_SEGMENTS_ENCODED_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/segments_encoded_view.hpp> #include <boost/url/segments_encoded_view.hpp>
#include <boost/url/parse_path.hpp> #include <boost/url/parse_path.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_SEGMENTS_REF_IPP #ifndef BOOST_URL_IMPL_SEGMENTS_REF_IPP
#define BOOST_URL_IMPL_SEGMENTS_REF_IPP #define BOOST_URL_IMPL_SEGMENTS_REF_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/segments_ref.hpp> #include <boost/url/segments_ref.hpp>
#include <boost/url/url.hpp> #include <boost/url/url.hpp>
#include <boost/url/detail/path.hpp> #include <boost/url/detail/path.hpp>

View File

@ -11,6 +11,7 @@
#ifndef BOOST_URL_IMPL_SEGMENTS_VIEW_IPP #ifndef BOOST_URL_IMPL_SEGMENTS_VIEW_IPP
#define BOOST_URL_IMPL_SEGMENTS_VIEW_IPP #define BOOST_URL_IMPL_SEGMENTS_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/segments_view.hpp> #include <boost/url/segments_view.hpp>
#include <boost/url/parse_path.hpp> #include <boost/url/parse_path.hpp>

View File

@ -1,10 +0,0 @@
//
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
//
// 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)
//
// Official repository: https://github.com/boostorg/url
//
#include <boost/url/src.hpp>

View File

@ -10,6 +10,8 @@
#ifndef BOOST_URL_IMPL_STATIC_URL_IPP #ifndef BOOST_URL_IMPL_STATIC_URL_IPP
#define BOOST_URL_IMPL_STATIC_URL_IPP #define BOOST_URL_IMPL_STATIC_URL_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/parse.hpp>
#include <boost/url/static_url.hpp> #include <boost/url/static_url.hpp>
#include <boost/url/url_view.hpp> #include <boost/url/url_view.hpp>
#include <boost/url/detail/except.hpp> #include <boost/url/detail/except.hpp>

View File

@ -11,7 +11,9 @@
#ifndef BOOST_URL_IMPL_URL_IPP #ifndef BOOST_URL_IMPL_URL_IPP
#define BOOST_URL_IMPL_URL_IPP #define BOOST_URL_IMPL_URL_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/url.hpp> #include <boost/url/url.hpp>
#include <boost/url/parse.hpp>
#include <boost/assert.hpp> #include <boost/assert.hpp>
namespace boost { namespace boost {
@ -98,8 +100,7 @@ clear_impl() noexcept
} }
else else
{ {
BOOST_ASSERT(impl_.cs_ == BOOST_ASSERT(impl_.cs_[0] == 0);
detail::empty_c_str_);
} }
} }

View File

@ -11,17 +11,23 @@
#ifndef BOOST_URL_IMPL_URL_BASE_IPP #ifndef BOOST_URL_IMPL_URL_BASE_IPP
#define BOOST_URL_IMPL_URL_BASE_IPP #define BOOST_URL_IMPL_URL_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/url_base.hpp> #include <boost/url/url_base.hpp>
#include <boost/url/encode.hpp>
#include <boost/url/error.hpp> #include <boost/url/error.hpp>
#include <boost/url/host_type.hpp> #include <boost/url/host_type.hpp>
#include <boost/url/scheme.hpp> #include <boost/url/scheme.hpp>
#include <boost/url/url_view.hpp> #include <boost/url/url_view.hpp>
#include <boost/url/detail/any_params_iter.hpp> #include <boost/url/detail/any_params_iter.hpp>
#include <boost/url/detail/any_segments_iter.hpp> #include <boost/url/detail/any_segments_iter.hpp>
#include <boost/url/detail/decode.hpp>
#include <boost/url/detail/encode.hpp> #include <boost/url/detail/encode.hpp>
#include <boost/url/detail/except.hpp> #include <boost/url/detail/except.hpp>
#include <boost/url/detail/move_chars.hpp> #include <boost/url/detail/move_chars.hpp>
#include <boost/url/detail/normalize.hpp>
#include <boost/url/detail/path.hpp>
#include <boost/url/detail/print.hpp> #include <boost/url/detail/print.hpp>
#include <boost/url/grammar/ci_string.hpp>
#include <boost/url/rfc/authority_rule.hpp> #include <boost/url/rfc/authority_rule.hpp>
#include <boost/url/rfc/query_rule.hpp> #include <boost/url/rfc/query_rule.hpp>
#include <boost/url/rfc/detail/charsets.hpp> #include <boost/url/rfc/detail/charsets.hpp>

View File

@ -11,7 +11,9 @@
#ifndef BOOST_URL_IMPL_URL_VIEW_IPP #ifndef BOOST_URL_IMPL_URL_VIEW_IPP
#define BOOST_URL_IMPL_URL_VIEW_IPP #define BOOST_URL_IMPL_URL_VIEW_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/url_view.hpp> #include <boost/url/url_view.hpp>
#include <boost/url/parse.hpp>
#include <boost/url/detail/except.hpp> #include <boost/url/detail/except.hpp>
namespace boost { namespace boost {

View File

@ -11,8 +11,11 @@
#ifndef BOOST_URL_IMPL_URL_VIEW_BASE_IPP #ifndef BOOST_URL_IMPL_URL_VIEW_BASE_IPP
#define BOOST_URL_IMPL_URL_VIEW_BASE_IPP #define BOOST_URL_IMPL_URL_VIEW_BASE_IPP
#include <boost/url/detail/config.hpp>
#include <boost/url/url_view_base.hpp> #include <boost/url/url_view_base.hpp>
#include <boost/url/url_view.hpp>
#include <boost/url/detail/except.hpp> #include <boost/url/detail/except.hpp>
#include <boost/url/detail/normalize.hpp>
#include <boost/url/detail/over_allocator.hpp> #include <boost/url/detail/over_allocator.hpp>
namespace boost { namespace boost {

View File

@ -11,13 +11,14 @@ set(SUITE_FILES ../../extra/test_main.cpp ../../extra/test_suite.hpp)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES limits.cpp Jamfile) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES limits.cpp Jamfile)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/../../extra PREFIX "_extra" FILES ${SUITE_FILES}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/../../extra PREFIX "_extra" FILES ${SUITE_FILES})
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/../../src PREFIX "_extra" FILES ../../src/src.cpp) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/../../src PREFIX "url" FILES ${BOOST_URL_SOURCES})
add_executable(boost_url_limits limits.cpp Jamfile ${SUITE_FILES} ../../src/src.cpp)
add_library(boost_url_small_limits ${BOOST_URL_HEADERS} ${BOOST_URL_SOURCES})
boost_url_setup_properties(boost_url_small_limits)
target_compile_definitions(boost_url_small_limits PUBLIC BOOST_URL_MAX_SIZE=16 BOOST_URL_NO_LIB=1)
add_executable(boost_url_limits limits.cpp Jamfile ${SUITE_FILES})
target_include_directories(boost_url_limits PRIVATE ../../include ../../extra ../../..) target_include_directories(boost_url_limits PRIVATE ../../include ../../extra ../../..)
target_compile_definitions(boost_url_limits PRIVATE
BOOST_URL_MAX_SIZE=16
BOOST_URL_NO_LIB=1
)
if (BOOST_URL_FIND_PACKAGE_BOOST) if (BOOST_URL_FIND_PACKAGE_BOOST)
target_link_libraries(boost_url_limits PRIVATE Boost::headers) target_link_libraries(boost_url_limits PRIVATE Boost::headers)
else() else()
@ -30,6 +31,6 @@ else()
Boost::system Boost::system
Boost::variant2) Boost::variant2)
endif() endif()
target_link_libraries(boost_url_limits INTERFACE Boost::url) target_link_libraries(boost_url_limits PRIVATE boost_url_small_limits)
add_test(NAME boost_url_limits COMMAND boost_url_limits) add_test(NAME boost_url_limits COMMAND boost_url_limits)
add_dependencies(boost_url_all_tests boost_url_limits) add_dependencies(boost_url_all_tests boost_url_limits)

View File

@ -104,10 +104,13 @@ set(BOOST_URL_TESTS_FILES
) )
set(SUITE_FILES ../../extra/test_main.cpp ../../extra/test_suite.hpp) set(SUITE_FILES ../../extra/test_main.cpp ../../extra/test_suite.hpp)
set(EXAMPLE_FILES ../../example/router/impl/matches.cpp ../../example/router/detail/impl/router.cpp)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${BOOST_URL_TESTS_FILES}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${BOOST_URL_TESTS_FILES})
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/../../extra PREFIX "_extra" FILES ${SUITE_FILES}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/../../extra PREFIX "_extra" FILES ${SUITE_FILES})
add_executable(boost_url_tests ${BOOST_URL_TESTS_FILES} ${SUITE_FILES}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/../../example/router PREFIX "_router" FILES ${EXAMPLE_FILES})
add_executable(boost_url_tests ${BOOST_URL_TESTS_FILES} ${SUITE_FILES} ${EXAMPLE_FILES})
target_include_directories(boost_url_tests PRIVATE . ../../extra) target_include_directories(boost_url_tests PRIVATE . ../../extra)
target_include_directories(boost_url_tests PRIVATE ../../example/router) target_include_directories(boost_url_tests PRIVATE ../../example/router)
# The include dependencies are found in the CMakeLists.txt # The include dependencies are found in the CMakeLists.txt
@ -121,11 +124,15 @@ target_link_libraries(boost_url_tests PRIVATE
add_test(NAME boost_url_tests COMMAND boost_url_tests) add_test(NAME boost_url_tests COMMAND boost_url_tests)
add_dependencies(boost_url_all_tests boost_url_tests) add_dependencies(boost_url_all_tests boost_url_tests)
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_compile_options(boost_url_tests PUBLIC -Wno-error=unused-but-set-variable) target_compile_options(
boost_url_tests
PUBLIC
-Wno-unused-but-set-variable
-Wno-unused-function)
if (TARGET boost_filesystem AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if (TARGET boost_filesystem AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
get_target_property(FS_IS_IMPORTED boost_filesystem IMPORTED) get_target_property(FS_IS_IMPORTED boost_filesystem IMPORTED)
if (FS_IS_IMPORTED) if (FS_IS_IMPORTED)
target_compile_options(boost_filesystem PUBLIC -Wno-error=restrict) target_compile_options(boost_filesystem PUBLIC -Wno-restrict)
endif() endif()
endif() endif()
endif() endif()

View File

@ -100,7 +100,6 @@ local SOURCES =
rfc/unreserved_chars.cpp rfc/unreserved_chars.cpp
rfc/uri_rule.cpp rfc/uri_rule.cpp
rfc/uri_reference_rule.cpp rfc/uri_reference_rule.cpp
example/router/router.cpp
compat/ada.cpp compat/ada.cpp
; ;
for local f in $(SOURCES) for local f in $(SOURCES)
@ -109,3 +108,4 @@ for local f in $(SOURCES)
} }
run doc_grammar.cpp /boost/url//boost_url : : : <warnings>off ; run doc_grammar.cpp /boost/url//boost_url : : : <warnings>off ;
run doc_3_urls.cpp /boost/url//boost_url : : : <warnings>off ; run doc_3_urls.cpp /boost/url//boost_url : : : <warnings>off ;
run example/router/router.cpp ../../example/router/impl/matches.cpp ../../example/router/detail/impl/router.cpp /boost/url//boost_url : : : <warnings>off ;

View File

@ -13,7 +13,6 @@
#endif #endif
#include "router.hpp" #include "router.hpp"
#include "src.hpp"
#include "test_suite.hpp" #include "test_suite.hpp"