• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!-- Copyright 2018 Paul Fultz II
2     Distributed under the Boost Software License, Version 1.0.
3     (http://www.boost.org/LICENSE_1_0.txt)
4-->
5
6Configurations
7==============
8
9There are several configuration macros that control the behavior of Boost.HigherOrderFunctions library.
10
11```eval_rst
12+-----------------------------------------+--------------------------------------------------------------------------------+
13| Name                                    | Description                                                                    |
14+=========================================+================================================================================+
15| ``BOOST_HOF_CHECK_UNPACK_SEQUENCE``     | Unpack has extra checks to ensure that the function will be invoked with the   |
16|                                         | sequence. This extra check can help improve error reporting but it can slow    |
17|                                         | down compilation. This is enabled by default.                                  |
18+-----------------------------------------+--------------------------------------------------------------------------------+
19| ``BOOST_HOF_NO_EXPRESSION_SFINAE``      | This controls whether the library will use expression SFINAE to detect the     |
20|                                         | callability of functions. On MSVC, this is enabled by default, since it does   |
21|                                         | not have full support for expression SFINAE.                                   |
22+-----------------------------------------+--------------------------------------------------------------------------------+
23| ``BOOST_HOF_RECURSIVE_CONSTEXPR_DEPTH`` | Because C++ instantiates `constexpr` functions eagerly, recursion with         |
24|                                         | `constexpr` functions can cause the compiler to reach its internal limits. The |
25|                                         | setting is used by the library to set a limit on recursion depth to avoid      |
26|                                         | infinite template instantiations. The default is 16, but increasing the limit  |
27|                                         | can increase compile times.                                                    |
28+-----------------------------------------+--------------------------------------------------------------------------------+
29```
30