mirror of
https://github.com/boostorg/hana.git
synced 2026-01-19 16:22:15 +00:00
Merge develop into master
This commit is contained in:
98
.travis.yml
98
.travis.yml
@@ -4,7 +4,7 @@
|
||||
|
||||
language: cpp
|
||||
os: linux # Jobs are on Linux unless specified otherwise
|
||||
dist: trusty # Jobs are on Trusty unless specified otherwise
|
||||
dist: xenial
|
||||
sudo: false
|
||||
|
||||
env:
|
||||
@@ -22,39 +22,19 @@ matrix:
|
||||
# Note that we only use the memory checker on the main configuration to
|
||||
# speed up Travis builds.
|
||||
##########################################################################
|
||||
# Clang 3.9
|
||||
- env: UNIT_TESTS=true COMPILER=clang++-3.9 BOOST_VERSION=default ENABLE_MEMCHECK=true
|
||||
addons: { apt: { packages: ["clang-3.9", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-3.9"] } }
|
||||
|
||||
# Clang 4.0
|
||||
- env: UNIT_TESTS=true COMPILER=clang++-4.0 BOOST_VERSION=default ENABLE_MEMCHECK=true
|
||||
addons: { apt: { packages: ["clang-4.0", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-4.0"] } }
|
||||
|
||||
# Clang 5.0
|
||||
- env: UNIT_TESTS=true COMPILER=clang++-5.0 BOOST_VERSION=default ENABLE_MEMCHECK=true
|
||||
addons: { apt: { packages: ["clang-5.0", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-5.0"] } }
|
||||
|
||||
# Clang 6.0
|
||||
- env: UNIT_TESTS=true COMPILER=clang++-6.0 BOOST_VERSION=default ENABLE_MEMCHECK=true
|
||||
addons: { apt: { packages: ["clang-6.0", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-6.0"] } }
|
||||
|
||||
# Clang 7.0
|
||||
# Clang 7
|
||||
- env: UNIT_TESTS=true COMPILER=clang++-7 BOOST_VERSION=default ENABLE_MEMCHECK=true
|
||||
addons: &defaults { apt: { packages: ["clang-7", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-7"] } }
|
||||
addons: { apt: { packages: ["clang-7", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-xenial-7"] } }
|
||||
|
||||
# GCC 6
|
||||
- env: UNIT_TESTS=true COMPILER=g++-6 BOOST_VERSION=default ENABLE_MEMCHECK=true
|
||||
addons: { apt: { packages: ["g++-6", "valgrind"], sources: ["ubuntu-toolchain-r-test"] } }
|
||||
|
||||
# GCC 7
|
||||
- env: UNIT_TESTS=true COMPILER=g++-7 BOOST_VERSION=default ENABLE_MEMCHECK=true
|
||||
addons: { apt: { packages: ["g++-7", "valgrind"], sources: ["ubuntu-toolchain-r-test"] } }
|
||||
# Clang 8
|
||||
- env: UNIT_TESTS=true COMPILER=clang++-8 BOOST_VERSION=default ENABLE_MEMCHECK=true
|
||||
addons: &defaults { apt: { packages: ["clang-8", "valgrind"], sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-xenial-8"] } }
|
||||
|
||||
# GCC 8
|
||||
- env: UNIT_TESTS=true COMPILER=g++-8 BOOST_VERSION=default ENABLE_MEMCHECK=true
|
||||
addons: { apt: { packages: ["g++-8", "valgrind"], sources: ["ubuntu-toolchain-r-test"] } }
|
||||
|
||||
# Xcode 9.1
|
||||
# Xcode 11
|
||||
- os: osx
|
||||
env: UNIT_TESTS=true BOOST_VERSION=default
|
||||
osx_image: xcode11
|
||||
@@ -66,9 +46,17 @@ matrix:
|
||||
- env: UNIT_TESTS=true COMPILER=default BOOST_VERSION=default CMAKE_OPTIONS="-DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON"
|
||||
addons: *defaults
|
||||
|
||||
# With C++20, on Clang
|
||||
- env: UNIT_TESTS=true COMPILER=default BOOST_VERSION=default CMAKE_OPTIONS="-DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_STANDARD_REQUIRED=ON"
|
||||
addons: *defaults
|
||||
|
||||
# With C++17, on GCC
|
||||
- env: UNIT_TESTS=true COMPILER=g++-6 BOOST_VERSION=default CMAKE_OPTIONS="-DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON"
|
||||
addons: { apt: { packages: ["g++-6", "valgrind"], sources: ["ubuntu-toolchain-r-test"] } }
|
||||
- env: UNIT_TESTS=true COMPILER=g++-8 BOOST_VERSION=default CMAKE_OPTIONS="-DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON"
|
||||
addons: { apt: { packages: ["g++-8", "valgrind"], sources: ["ubuntu-toolchain-r-test"] } }
|
||||
|
||||
# With C++20, on GCC
|
||||
- env: UNIT_TESTS=true COMPILER=g++-8 BOOST_VERSION=default CMAKE_OPTIONS="-DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_STANDARD_REQUIRED=ON"
|
||||
addons: { apt: { packages: ["g++-8", "valgrind"], sources: ["ubuntu-toolchain-r-test"] } }
|
||||
|
||||
# Without concept checks
|
||||
- env: UNIT_TESTS=true COMPILER=default BOOST_VERSION=default CMAKE_OPTIONS="-DBOOST_HANA_ENABLE_CONCEPT_CHECKS=OFF"
|
||||
@@ -87,12 +75,8 @@ matrix:
|
||||
env: UNIT_TESTS=true BOOST_VERSION=default CMAKE_OPTIONS="-DBOOST_HANA_ENABLE_EXCEPTIONS=OFF"
|
||||
osx_image: xcode11
|
||||
|
||||
# With Boost 1.64
|
||||
- env: UNIT_TESTS=true COMPILER=default BOOST_VERSION=1.64.0
|
||||
addons: *defaults
|
||||
|
||||
# With Boost 1.65.1
|
||||
- env: UNIT_TESTS=true COMPILER=default BOOST_VERSION=1.65.1
|
||||
# With Boost 1.76.0
|
||||
- env: UNIT_TESTS=true COMPILER=default BOOST_VERSION=1.76.0
|
||||
addons: *defaults
|
||||
|
||||
# Without Boost (make sure we don't depend on it)
|
||||
@@ -113,6 +97,7 @@ matrix:
|
||||
##########################################################################
|
||||
- os: osx
|
||||
env: DOCUMENTATION=true BOOST_VERSION=default
|
||||
osx_image: xcode11
|
||||
|
||||
##########################################################################
|
||||
# Benchmarks
|
||||
@@ -142,8 +127,8 @@ install:
|
||||
############################################################################
|
||||
# Setup default versions and override CXX set by Travis if needed
|
||||
############################################################################
|
||||
- if [[ "${COMPILER}" == "default" ]]; then COMPILER=clang++-7; fi
|
||||
- if [[ "${BOOST_VERSION}" == "default" ]]; then BOOST_VERSION=1.66.0; fi
|
||||
- if [[ "${COMPILER}" == "default" ]]; then COMPILER=clang++-8; fi
|
||||
- if [[ "${BOOST_VERSION}" == "default" ]]; then BOOST_VERSION=1.76.0; fi
|
||||
|
||||
- if [[ "${COMPILER}" != "" ]]; then export CXX=${COMPILER}; fi
|
||||
- ${CXX} --version
|
||||
@@ -159,7 +144,7 @@ install:
|
||||
travis_retry git clone --depth 1 --recursive ${BOOST_URL} ${BOOST_DIR} || exit 1
|
||||
(cd ${BOOST_DIR} && ./bootstrap.sh && ./b2 headers) || exit 1
|
||||
else
|
||||
BOOST_URL="https://dl.bintray.com/boostorg/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION//\./_}.tar.gz"
|
||||
BOOST_URL="https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION//\./_}.tar.gz"
|
||||
mkdir -p ${BOOST_DIR}
|
||||
{ travis_retry wget -O - ${BOOST_URL} | tar --strip-components=1 -xz -C ${BOOST_DIR}; } || exit 1
|
||||
fi
|
||||
@@ -174,7 +159,7 @@ install:
|
||||
############################################################################
|
||||
- |
|
||||
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
|
||||
CMAKE_URL="https://cmake.org/files/v3.10/cmake-3.10.0-Linux-x86_64.tar.gz"
|
||||
CMAKE_URL="https://github.com/Kitware/CMake/releases/download/v3.20.2/cmake-3.20.2.tar.gz"
|
||||
mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
|
||||
export PATH=${DEPS_DIR}/cmake/bin:${PATH}
|
||||
else
|
||||
@@ -192,35 +177,6 @@ install:
|
||||
b2 --version || true # b2 --version returns 1
|
||||
fi
|
||||
|
||||
############################################################################
|
||||
# Install libc++ and libc++abi if needed
|
||||
############################################################################
|
||||
- |
|
||||
if [[ "${CXX%%+*}" == "clang" ]]; then
|
||||
if [[ "${CXX}" == "clang++-3.9" ]]; then LLVM_VERSION="3.9.1";
|
||||
elif [[ "${CXX}" == "clang++-4.0" ]]; then LLVM_VERSION="4.0.1";
|
||||
elif [[ "${CXX}" == "clang++-5.0" ]]; then LLVM_VERSION="5.0.2";
|
||||
elif [[ "${CXX}" == "clang++-6.0" ]]; then LLVM_VERSION="6.0.1";
|
||||
elif [[ "${CXX}" == "clang++-7" ]]; then LLVM_VERSION="7.0.1";
|
||||
fi
|
||||
|
||||
LLVM_URL="http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz"
|
||||
LIBCXX_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxx-${LLVM_VERSION}.src.tar.xz"
|
||||
LIBCXXABI_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxxabi-${LLVM_VERSION}.src.tar.xz"
|
||||
|
||||
mkdir -p llvm llvm/build llvm/projects/libcxx llvm/projects/libcxxabi
|
||||
travis_retry wget -O - ${LLVM_URL} | tar --strip-components=1 -xJ -C llvm || exit 1
|
||||
travis_retry wget -O - ${LIBCXX_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxx || exit 1
|
||||
travis_retry wget -O - ${LIBCXXABI_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxxabi || exit 1
|
||||
(cd llvm/build && cmake .. -DCMAKE_INSTALL_PREFIX=${DEPS_DIR}/llvm/install) || exit 1
|
||||
(cd llvm/build/projects/libcxx && make install -j2) || exit 1
|
||||
(cd llvm/build/projects/libcxxabi && make install -j2) || exit 1
|
||||
|
||||
export CXXFLAGS="-isystem ${DEPS_DIR}/llvm/install/include/c++/v1"
|
||||
export LDFLAGS="-L ${DEPS_DIR}/llvm/install/lib -l c++ -l c++abi"
|
||||
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${DEPS_DIR}/llvm/install/lib"
|
||||
fi
|
||||
|
||||
############################################################################
|
||||
# Install a recent Doxygen
|
||||
############################################################################
|
||||
@@ -358,11 +314,7 @@ script:
|
||||
|
||||
# Build tests
|
||||
echo "using clang : : ${CXX} ;" > project-config.jam
|
||||
if [[ "${LDFLAGS}" == "" ]]; then
|
||||
(cd test && b2 toolset=clang cxxflags="-std=c++1y ${CXXFLAGS}" include="${BOOST_DIR}") || exit 1
|
||||
else
|
||||
(cd test && b2 toolset=clang cxxflags="-std=c++1y ${CXXFLAGS}" include="${BOOST_DIR}" linkflags="${LDFLAGS}") || exit 1
|
||||
fi
|
||||
(cd test && b2 toolset=clang cxxflags="-std=c++1y" include="${BOOST_DIR}") || exit 1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
Release notes for Hana 1.7.0
|
||||
Release notes for Hana 1.6.2
|
||||
============================
|
||||
- Disable the definition of traits::is_pod in C++20 and later, due to its
|
||||
deprecation.
|
||||
|
||||
@@ -109,9 +109,9 @@ below, which are tested on an ongoing basis:
|
||||
|
||||
Compiler/Toolchain | Status
|
||||
------------------ | ------
|
||||
Clang >= 3.9.1 | Fully working; tested on each push to GitHub
|
||||
Xcode >= 9.1 | Fully working; tested on each push to GitHub
|
||||
GCC >= 6.0.0 | Fully working; tested on each push to GitHub
|
||||
Clang >= 7 | Fully working; tested on each push to GitHub
|
||||
Xcode >= 11 | Fully working; tested on each push to GitHub
|
||||
GCC >= 8 | Fully working; tested on each push to GitHub
|
||||
VS2017 >= Update 7 | Fully working; tested on each push to GitHub
|
||||
|
||||
More specifically, Hana requires a compiler/standard library supporting the
|
||||
@@ -2420,13 +2420,15 @@ for `Constant` and `IntegralConstant`.
|
||||
Hana's algorithms are `constexpr` function objects instead of being template
|
||||
functions. This allows passing them to higher-order algorithms, which is very
|
||||
useful. However, since those function objects are defined at namespace scope
|
||||
in the header files, this causes each translation unit to see a different
|
||||
algorithm object. Hence, the address of an algorithm function object is not
|
||||
guaranteed to be unique across translation units, which can cause an ODR
|
||||
violation if one relies on such an address. So, in short, do not rely on the
|
||||
uniqueness of the address of any global object provided by Hana, which does
|
||||
not make sense in the general case anyway because such objects are `constexpr`.
|
||||
See [issue #76](https://github.com/boostorg/hana/issues/76) for more information.
|
||||
in the header files, we require support for C++17 inline variables in order to
|
||||
avoid ODR violations (by means of the same object being defined twice in
|
||||
different translation units). When compiling in C++14 mode, where inline
|
||||
variables are not available, each translation unit will see a different
|
||||
algorithm object, so the address of an algorithm function object is not
|
||||
guaranteed to be unique across translation units. This is technically an ODR
|
||||
violation, but it shouldn't bite you unless you rely on the addresses being
|
||||
the same. So, in short, do not rely on the uniqueness of the address of any
|
||||
global object provided by Hana if you are compiling in C++14 mode.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -104,6 +104,15 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
# define BOOST_HANA_CONSTEXPR_LAMBDA /* nothing */
|
||||
#endif
|
||||
|
||||
// `BOOST_HANA_INLINE_VARIABLE` expands to `inline` when C++17 inline variables
|
||||
// are supported, and to nothing otherwise. This allows marking global variables
|
||||
// defined in a header as `inline` to avoid potential ODR violations.
|
||||
#if defined(__cplusplus) && __cplusplus > 201402L
|
||||
# define BOOST_HANA_INLINE_VARIABLE inline
|
||||
#else
|
||||
# define BOOST_HANA_INLINE_VARIABLE /* nothing */
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Namespace macros
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -34,7 +34,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
};
|
||||
|
||||
template <std::size_t n>
|
||||
constexpr at_type<n> at{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr at_type<n> at{};
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_AT_HPP
|
||||
|
||||
@@ -41,7 +41,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
};
|
||||
|
||||
template <std::size_t n>
|
||||
constexpr make_dropper<n> drop_into{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_dropper<n> drop_into{};
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_DROP_INTO_HPP
|
||||
|
||||
@@ -207,8 +207,8 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
}
|
||||
};
|
||||
|
||||
constexpr foldl1_t foldl1{};
|
||||
constexpr auto foldl = foldl1;
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr foldl1_t foldl1{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr auto foldl = foldl1;
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_FOLDL1_HPP
|
||||
|
||||
@@ -193,7 +193,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
}
|
||||
};
|
||||
|
||||
constexpr foldr1_t foldr1{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr foldr1_t foldr1{};
|
||||
|
||||
struct foldr_t {
|
||||
template <typename F, typename State, typename ...Xn>
|
||||
@@ -204,7 +204,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
}
|
||||
};
|
||||
|
||||
constexpr foldr_t foldr{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr foldr_t foldr{};
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_FOLDR1_HPP
|
||||
|
||||
@@ -15,7 +15,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
|
||||
|
||||
BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
BOOST_HANA_CONSTEXPR_LAMBDA auto reverse_apply =
|
||||
BOOST_HANA_INLINE_VARIABLE BOOST_HANA_CONSTEXPR_LAMBDA auto reverse_apply =
|
||||
[](auto&& f, auto&& ...x) -> decltype(auto) {
|
||||
return detail::variadic::reverse_apply_unrolled(
|
||||
static_cast<decltype(f)>(f),
|
||||
|
||||
@@ -80,8 +80,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
}
|
||||
};
|
||||
|
||||
constexpr reverse_apply_unrolled_impl reverse_apply_unrolled{};
|
||||
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr reverse_apply_unrolled_impl reverse_apply_unrolled{};
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_REVERSE_APPLY_UNROLLED_HPP
|
||||
|
||||
@@ -147,7 +147,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
};
|
||||
|
||||
template <std::size_t n>
|
||||
constexpr _makesplit_at_t<n> split_at{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr _makesplit_at_t<n> split_at{};
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_SPLIT_AT_HPP
|
||||
|
||||
@@ -45,7 +45,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace variadic {
|
||||
};
|
||||
|
||||
template <std::size_t n>
|
||||
constexpr take_t<n> take{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr take_t<n> take{};
|
||||
}} BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_DETAIL_VARIADIC_TAKE_HPP
|
||||
|
||||
@@ -87,7 +87,7 @@ BOOST_HANA_NAMESPACE_BEGIN namespace experimental {
|
||||
}
|
||||
};
|
||||
|
||||
constexpr print_t print{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr print_t print{};
|
||||
#endif
|
||||
|
||||
// Define the `Printable` concept
|
||||
|
||||
@@ -148,7 +148,7 @@ namespace experimental {
|
||||
return {s1, s2};
|
||||
}
|
||||
};
|
||||
constexpr make_joined_view_t joined{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_joined_view_t joined{};
|
||||
|
||||
namespace detail {
|
||||
template <typename Sequence1, typename Sequence2>
|
||||
|
||||
@@ -57,7 +57,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
{ return std::move(val_); }
|
||||
};
|
||||
|
||||
constexpr detail::create<_always> always{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr detail::create<_always> always{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
};
|
||||
|
||||
constexpr apply_t apply{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr apply_t apply{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
};
|
||||
|
||||
template <std::size_t n>
|
||||
constexpr arg_t<n> arg{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr arg_t<n> arg{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
};
|
||||
|
||||
constexpr make_capture_t capture{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_capture_t capture{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
};
|
||||
|
||||
constexpr _make_compose compose{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr _make_compose compose{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
};
|
||||
|
||||
template <std::size_t n>
|
||||
constexpr make_curry_t<n> curry{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_curry_t<n> curry{};
|
||||
|
||||
namespace curry_detail { namespace {
|
||||
template <std::size_t n>
|
||||
|
||||
@@ -262,7 +262,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
};
|
||||
|
||||
constexpr make_pre_demux_t demux{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_pre_demux_t demux{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
template <typename F>
|
||||
struct fix_t;
|
||||
|
||||
constexpr detail::create<fix_t> fix{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr detail::create<fix_t> fix{};
|
||||
|
||||
template <typename F>
|
||||
struct fix_t {
|
||||
|
||||
@@ -66,7 +66,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
};
|
||||
|
||||
constexpr detail::create<flip_t> flip{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr detail::create<flip_t> flip{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
};
|
||||
|
||||
constexpr id_t id{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr id_t id{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -178,7 +178,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
} // end namespace infix_detail
|
||||
|
||||
constexpr infix_detail::make_infix<false, false> infix{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr infix_detail::make_infix<false, false> infix{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -194,7 +194,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
};
|
||||
|
||||
template <std::size_t n>
|
||||
constexpr make_iterate_t<n> iterate{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_iterate_t<n> iterate{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
};
|
||||
|
||||
constexpr make_pre_lockstep_t lockstep{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_pre_lockstep_t lockstep{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
};
|
||||
|
||||
constexpr auto on = infix(detail::create<on_t>{});
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr auto on = infix(detail::create<on_t>{});
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
};
|
||||
|
||||
constexpr make_overload_t overload{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_overload_t overload{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
};
|
||||
|
||||
constexpr make_overload_linearly_t overload_linearly{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_overload_linearly_t overload_linearly{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
};
|
||||
|
||||
constexpr make_partial_t partial{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_partial_t partial{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -256,7 +256,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
#undef BOOST_HANA_BINARY_PLACEHOLDER_OP
|
||||
} // end namespace placeholder_detail
|
||||
|
||||
constexpr placeholder_detail::placeholder _{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr placeholder_detail::placeholder _{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
}
|
||||
};
|
||||
|
||||
constexpr make_reverse_partial_t reverse_partial{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_reverse_partial_t reverse_partial{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
struct accessors_t;
|
||||
|
||||
template <typename S>
|
||||
constexpr accessors_t<S> accessors{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr accessors_t<S> accessors{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Value&& value, F&& f) const;
|
||||
};
|
||||
|
||||
constexpr adjust_t adjust{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr adjust_t adjust{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Pred const& pred, F const& f) const;
|
||||
};
|
||||
|
||||
constexpr adjust_if_t adjust_if{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr adjust_if_t adjust_if{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs) const;
|
||||
};
|
||||
|
||||
constexpr all_t all{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr all_t all{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Pred&& pred) const;
|
||||
};
|
||||
|
||||
constexpr all_of_t all_of{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr all_of_t all_of{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(X&& x, Y&& ...y) const;
|
||||
};
|
||||
|
||||
constexpr and_t and_{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr and_t and_{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs) const;
|
||||
};
|
||||
|
||||
constexpr any_t any{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr any_t any{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Pred&& pred) const;
|
||||
};
|
||||
|
||||
constexpr any_of_t any_of{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr any_of_t any_of{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(F&& f, Xs&& ...xs) const;
|
||||
};
|
||||
|
||||
constexpr ap_t ap{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr ap_t ap{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, X&& x) const;
|
||||
};
|
||||
|
||||
constexpr append_t append{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr append_t append{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Xs&& xs, N const& n) const;
|
||||
};
|
||||
|
||||
constexpr at_t at{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr at_t at{};
|
||||
#endif
|
||||
|
||||
//! Equivalent to `at`; provided for convenience.
|
||||
|
||||
@@ -60,7 +60,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Xs&& xs, Key const& key) const;
|
||||
};
|
||||
|
||||
constexpr at_key_t at_key{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr at_key_t at_key{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Xs&& xs) const;
|
||||
};
|
||||
|
||||
constexpr back_t back{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr back_t back{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
//! Example
|
||||
//! -------
|
||||
//! @include example/basic_tuple/make.cpp
|
||||
constexpr auto make_basic_tuple = make<basic_tuple_tag>;
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr auto make_basic_tuple = make<basic_tuple_tag>;
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_FWD_BASIC_TUPLE_HPP
|
||||
|
||||
@@ -55,7 +55,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs) const;
|
||||
};
|
||||
|
||||
constexpr cartesian_product_t cartesian_product{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr cartesian_product_t cartesian_product{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Xs&& xs, F&& f) const;
|
||||
};
|
||||
|
||||
constexpr chain_t chain{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr chain_t chain{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(F&& f) const;
|
||||
};
|
||||
|
||||
constexpr comparing_t comparing{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr comparing_t comparing{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Ys&& ys) const;
|
||||
};
|
||||
|
||||
constexpr concat_t concat{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr concat_t concat{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Key&& key) const;
|
||||
};
|
||||
|
||||
constexpr auto contains = hana::infix(contains_t{});
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr auto contains = hana::infix(contains_t{});
|
||||
#endif
|
||||
|
||||
//! Return whether the key occurs in the structure.
|
||||
@@ -67,7 +67,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
//! Example
|
||||
//! -------
|
||||
//! @include example/in.cpp
|
||||
constexpr auto in = hana::infix(hana::flip(hana::contains));
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr auto in = hana::infix(hana::flip(hana::contains));
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_FWD_CONTAINS_HPP
|
||||
|
||||
@@ -43,7 +43,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
struct is_a_t;
|
||||
|
||||
template <typename Tag, typename ...T>
|
||||
constexpr is_a_t<Tag, T...> is_a{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr is_a_t<Tag, T...> is_a{};
|
||||
#endif
|
||||
|
||||
//! @ingroup group-core
|
||||
@@ -54,7 +54,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto is_an = is_a<Tag, T...>;
|
||||
#else
|
||||
template <typename Tag, typename ...T>
|
||||
constexpr is_a_t<Tag, T...> is_an{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr is_a_t<Tag, T...> is_an{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
};
|
||||
|
||||
template <typename Tag>
|
||||
constexpr make_t<Tag> make{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr make_t<Tag> make{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
};
|
||||
|
||||
template <typename To>
|
||||
constexpr to_t<To> to{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr to_t<To> to{};
|
||||
#endif
|
||||
|
||||
//! @ingroup group-core
|
||||
|
||||
@@ -50,7 +50,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Value&& value) const;
|
||||
};
|
||||
|
||||
constexpr count_t count{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr count_t count{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Pred&& pred) const;
|
||||
};
|
||||
|
||||
constexpr count_if_t count_if{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr count_if_t count_if{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, N const& n) const;
|
||||
};
|
||||
|
||||
constexpr cycle_t cycle{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr cycle_t cycle{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&&, Ys&&) const;
|
||||
};
|
||||
|
||||
constexpr difference_t difference{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr difference_t difference{};
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_FWD_DIFFERENCE_HPP
|
||||
|
||||
@@ -52,7 +52,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(X&& x, Y&& y) const;
|
||||
};
|
||||
|
||||
constexpr div_t div{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr div_t div{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs) const;
|
||||
};
|
||||
|
||||
constexpr drop_back_t drop_back{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr drop_back_t drop_back{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs) const;
|
||||
};
|
||||
|
||||
constexpr drop_front_t drop_front{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr drop_front_t drop_front{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs) const;
|
||||
};
|
||||
|
||||
constexpr drop_front_exactly_t drop_front_exactly{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr drop_front_exactly_t drop_front_exactly{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Pred&& pred) const;
|
||||
};
|
||||
|
||||
constexpr drop_while_t drop_while{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr drop_while_t drop_while{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(W_&& w) const;
|
||||
};
|
||||
|
||||
constexpr duplicate_t duplicate{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr duplicate_t duplicate{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
};
|
||||
|
||||
template <typename M>
|
||||
constexpr empty_t<M> empty{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr empty_t<M> empty{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(X&& x, Y&& y) const;
|
||||
};
|
||||
|
||||
constexpr equal_t equal{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr equal_t equal{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Set&& set, Args&& ...args) const;
|
||||
};
|
||||
|
||||
constexpr erase_key_t erase_key{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr erase_key_t erase_key{};
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_FWD_ERASE_KEY_HPP
|
||||
|
||||
@@ -51,7 +51,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Expr&& expr) const;
|
||||
};
|
||||
|
||||
constexpr eval_t eval{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr eval_t eval{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -148,7 +148,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Cond&& cond, Then&& then, Else&& else_) const;
|
||||
};
|
||||
|
||||
constexpr eval_if_t eval_if{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr eval_if_t eval_if{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(W_&& w, F&& f) const;
|
||||
};
|
||||
|
||||
constexpr extend_t extend{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr extend_t extend{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(W_&& w) const;
|
||||
};
|
||||
|
||||
constexpr extract_t extract{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr extract_t extract{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Value&& value) const;
|
||||
};
|
||||
|
||||
constexpr fill_t fill{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr fill_t fill{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Pred&& pred) const;
|
||||
};
|
||||
|
||||
constexpr filter_t filter{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr filter_t filter{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Key const& key) const;
|
||||
};
|
||||
|
||||
constexpr find_t find{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr find_t find{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Pred&& pred) const;
|
||||
};
|
||||
|
||||
constexpr find_if_t find_if{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr find_if_t find_if{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Pair&& pair) const;
|
||||
};
|
||||
|
||||
constexpr first_t first{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr first_t first{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs) const;
|
||||
};
|
||||
|
||||
constexpr flatten_t flatten{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr flatten_t flatten{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
//! Example
|
||||
//! -------
|
||||
//! @include example/fold.cpp
|
||||
constexpr auto fold = fold_left;
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr auto fold = fold_left;
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_FWD_FOLD_HPP
|
||||
|
||||
@@ -81,7 +81,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Xs&& xs, F&& f) const;
|
||||
};
|
||||
|
||||
constexpr fold_left_t fold_left{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr fold_left_t fold_left{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Xs&& xs, F&& f) const;
|
||||
};
|
||||
|
||||
constexpr fold_right_t fold_right{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr fold_right_t fold_right{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr void operator()(Xs&& xs, F&& f) const;
|
||||
};
|
||||
|
||||
constexpr for_each_t for_each{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr for_each_t for_each{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Xs&& xs) const;
|
||||
};
|
||||
|
||||
constexpr front_t front{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr front_t front{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(F&& f) const;
|
||||
};
|
||||
|
||||
constexpr fuse_t fuse{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr fuse_t fuse{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(X&& x, Y&& y) const;
|
||||
};
|
||||
|
||||
constexpr greater_t greater{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr greater_t greater{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(X&& x, Y&& y) const;
|
||||
};
|
||||
|
||||
constexpr greater_equal_t greater_equal{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr greater_equal_t greater_equal{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Predicate&& pred) const;
|
||||
};
|
||||
|
||||
constexpr group_t group{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr group_t group{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(X const& x) const;
|
||||
};
|
||||
|
||||
constexpr hash_t hash{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr hash_t hash{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Cond&& cond, Then&& then, Else&& else_) const;
|
||||
};
|
||||
|
||||
constexpr if_t if_{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr if_t if_{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Pred&& pred) const;
|
||||
};
|
||||
|
||||
constexpr index_if_t index_if{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr index_if_t index_if{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr decltype(auto) operator()(Set&& set, Args&& ...args) const;
|
||||
};
|
||||
|
||||
constexpr insert_t insert{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr insert_t insert{};
|
||||
|
||||
|
||||
//! Insert a value at a given index in a sequence.
|
||||
|
||||
@@ -50,7 +50,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, N&& n, Elements&& elements) const;
|
||||
};
|
||||
|
||||
constexpr insert_range_t insert_range{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr insert_range_t insert_range{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
//! -------
|
||||
//! @snippet example/integral_constant.cpp integral_c
|
||||
template <typename T, T v>
|
||||
constexpr integral_constant<T, v> integral_c{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr integral_constant<T, v> integral_c{};
|
||||
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
@@ -45,19 +45,19 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
template <bool b>
|
||||
constexpr bool_<b> bool_c{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr bool_<b> bool_c{};
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
using true_ = bool_<true>;
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
constexpr auto true_c = bool_c<true>;
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr auto true_c = bool_c<true>;
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
using false_ = bool_<false>;
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
constexpr auto false_c = bool_c<false>;
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr auto false_c = bool_c<false>;
|
||||
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
@@ -66,7 +66,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
template <char c>
|
||||
constexpr char_<c> char_c{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr char_<c> char_c{};
|
||||
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
@@ -75,7 +75,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
template <short i>
|
||||
constexpr short_<i> short_c{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr short_<i> short_c{};
|
||||
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
@@ -84,7 +84,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
template <unsigned short i>
|
||||
constexpr ushort_<i> ushort_c{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr ushort_<i> ushort_c{};
|
||||
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
@@ -93,7 +93,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
template <int i>
|
||||
constexpr int_<i> int_c{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr int_<i> int_c{};
|
||||
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
@@ -102,7 +102,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
template <unsigned int i>
|
||||
constexpr uint<i> uint_c{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr uint<i> uint_c{};
|
||||
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
@@ -111,7 +111,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
template <long i>
|
||||
constexpr long_<i> long_c{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr long_<i> long_c{};
|
||||
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
@@ -120,7 +120,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
template <unsigned long i>
|
||||
constexpr ulong<i> ulong_c{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr ulong<i> ulong_c{};
|
||||
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
@@ -129,7 +129,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
template <long long i>
|
||||
constexpr llong<i> llong_c{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr llong<i> llong_c{};
|
||||
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
@@ -138,7 +138,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
template <unsigned long long i>
|
||||
constexpr ullong<i> ullong_c{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr ullong<i> ullong_c{};
|
||||
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
@@ -147,7 +147,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
|
||||
//! @relates hana::integral_constant
|
||||
template <std::size_t i>
|
||||
constexpr size_t<i> size_c{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr size_t<i> size_c{};
|
||||
|
||||
|
||||
namespace literals {
|
||||
|
||||
@@ -26,7 +26,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&&, Ys&&) const;
|
||||
};
|
||||
|
||||
constexpr intersection_t intersection{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr intersection_t intersection{};
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_FWD_INTERSECTION_HPP
|
||||
|
||||
@@ -50,7 +50,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Z&& z) const;
|
||||
};
|
||||
|
||||
constexpr intersperse_t intersperse{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr intersperse_t intersperse{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Ys&& ys) const;
|
||||
};
|
||||
|
||||
constexpr is_disjoint_t is_disjoint{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr is_disjoint_t is_disjoint{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs const& xs) const;
|
||||
};
|
||||
|
||||
constexpr is_empty_t is_empty{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr is_empty_t is_empty{};
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Xs&& xs, Ys&& ys) const;
|
||||
};
|
||||
|
||||
constexpr auto is_subset = hana::infix(is_subset_t{});
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr auto is_subset = hana::infix(is_subset_t{});
|
||||
#endif
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
constexpr auto operator()(Map&& map) const;
|
||||
};
|
||||
|
||||
constexpr keys_t keys{};
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr keys_t keys{};
|
||||
|
||||
//! Returns a `Sequence` containing the name of the members of
|
||||
//! the data structure.
|
||||
|
||||
@@ -118,7 +118,7 @@ BOOST_HANA_NAMESPACE_BEGIN
|
||||
//! Example
|
||||
//! -------
|
||||
//! @include example/lazy/make.cpp
|
||||
constexpr auto make_lazy = make<lazy_tag>;
|
||||
BOOST_HANA_INLINE_VARIABLE constexpr auto make_lazy = make<lazy_tag>;
|
||||
BOOST_HANA_NAMESPACE_END
|
||||
|
||||
#endif // !BOOST_HANA_FWD_LAZY_HPP
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user