Squashed 'third_party/boostorg/function_types/' content from commit ae4fde2
Change-Id: I946aaade9862a3a50fdce89fbc618c914b0edae6
git-subtree-dir: third_party/boostorg/function_types
git-subtree-split: ae4fde2e2ae88291d6d656137169ff4003d184a1
diff --git a/build/Jamfile b/build/Jamfile
new file mode 100644
index 0000000..38b185a
--- /dev/null
+++ b/build/Jamfile
@@ -0,0 +1,30 @@
+
+# (C) Copyright Tobias Schwinger
+#
+# Use modification and distribution are subject to the boost Software License,
+# Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+# Generates preprocessed files with wave.
+
+actions wave
+{
+ $(>[1]) -S../../.. $(>[2]) -o $(<)
+}
+
+W = ../../../tools/wave/build//wave ;
+
+make arity_loops
+ : preprocess_arity_loops.cpp $(W) : wave : <location>build/timestamps
+ ;
+
+make encoding
+ : preprocess_encoding.cpp $(W) : wave : <location>build/timestamps
+ ;
+
+
+make cc_names
+ : preprocess_cc_names.cpp $(W) : wave : <location>build/timestamps
+ ;
+
+explicit arity_loops encoding cc_names ;
+
diff --git a/build/preprocess_arity_loops.cpp b/build/preprocess_arity_loops.cpp
new file mode 100644
index 0000000..d39b65c
--- /dev/null
+++ b/build/preprocess_arity_loops.cpp
@@ -0,0 +1,88 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#if !defined(BOOST_FT_PREPROCESSING_MODE)
+
+# ifndef __WAVE__
+# error "Boost.Wave preprocessor required"
+# endif
+
+# include <boost/preprocessor/seq/cat.hpp>
+# include <boost/preprocessor/stringize.hpp>
+
+# if BOOST_PP_NIL // enable dependency scanning for dynamically included files
+# include <boost/function_types/detail/encoding/def.hpp>
+# include <boost/function_types/detail/components_impl/master.hpp>
+# include <boost/function_types/detail/synthesize_impl/master.hpp>
+# include <boost/function_types/detail/classifier_impl/master.hpp>
+# endif
+
+# pragma wave option(line: 0, preserve: 2)
+timestamp file
+# pragma wave option(output: null)
+
+# define BOOST_FT_PREPROCESSING_MODE
+
+# define BOOST_FT_HEADER \
+ BOOST_PP_SEQ_CAT((arity)(BOOST_FT_MAX_ARITY)(_)(BOOST_FT_mfp)).hpp
+ #define BOOST_FT_OUT_FILE \
+ BOOST_PP_STRINGIZE(../../../BOOST_FT_al_path/BOOST_FT_HEADER)
+
+# define BOOST_FT_al_path boost/function_types/detail/components_impl
+# include __FILE__
+# undef BOOST_FT_al_path
+
+# define BOOST_FT_al_path boost/function_types/detail/synthesize_impl
+# include __FILE__
+# undef BOOST_FT_al_path
+
+# define BOOST_FT_al_path boost/function_types/detail/classifier_impl
+# include __FILE__
+# undef BOOST_FT_al_path
+
+#elif !defined(BOOST_FT_mfp)
+
+# define BOOST_FT_mfp 0
+# include __FILE__
+# undef BOOST_FT_mfp
+
+# define BOOST_FT_mfp 1
+# include __FILE__
+# undef BOOST_FT_mfp
+
+#elif !defined(BOOST_FT_MAX_ARITY)
+
+# define BOOST_FT_FROM_ARITY 0
+# define BOOST_FT_MAX_ARITY 10
+# include __FILE__
+
+# define BOOST_FT_FROM_ARITY 10
+# define BOOST_FT_MAX_ARITY 20
+# include __FILE__
+
+# define BOOST_FT_FROM_ARITY 20
+# define BOOST_FT_MAX_ARITY 30
+# include __FILE__
+
+# define BOOST_FT_FROM_ARITY 30
+# define BOOST_FT_MAX_ARITY 40
+# include __FILE__
+
+# define BOOST_FT_FROM_ARITY 40
+# define BOOST_FT_MAX_ARITY 50
+# include __FILE__
+
+#else
+
+# pragma message(generating BOOST_FT_OUT_FILE)
+# pragma wave option(preserve: 2, output: BOOST_FT_OUT_FILE)
+# include <boost/function_types/detail/pp_arity_loop.hpp>
+# undef BOOST_FT_MAX_ARITY
+
+#endif
+
diff --git a/build/preprocess_cc_names.cpp b/build/preprocess_cc_names.cpp
new file mode 100644
index 0000000..803667c
--- /dev/null
+++ b/build/preprocess_cc_names.cpp
@@ -0,0 +1,27 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifndef __WAVE__
+# error "Boost.Wave preprocessor required"
+#endif
+
+#pragma wave option(line: 0, preserve: 2)
+timestamp file
+#pragma wave option(output: null)
+
+#define BOOST_FT_PREPROCESSING_MODE
+
+
+#define BOOST_FT_OUT_FILE \
+ "../../../boost/function_types/detail/pp_cc_loop/preprocessed.hpp"
+#pragma message(generating BOOST_FT_OUT_FILE)
+#pragma wave option(output: BOOST_FT_OUT_FILE, preserve: 2)
+#include <boost/function_types/detail/pp_cc_loop/master.hpp>
+#pragma wave option(output: null)
+#undef BOOST_FT_OUT_FILE
+
diff --git a/build/preprocess_encoding.cpp b/build/preprocess_encoding.cpp
new file mode 100644
index 0000000..886bec3
--- /dev/null
+++ b/build/preprocess_encoding.cpp
@@ -0,0 +1,45 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#ifndef __WAVE__
+# error "Boost.Wave preprocessor required"
+#endif
+
+#pragma wave option(line: 0, preserve: 2)
+timestamp file
+#pragma wave option(output: null)
+
+#define BOOST_FT_PREPROCESSING_MODE
+
+
+#define BOOST_FT_OUT_FILE \
+ "../../../boost/function_types/detail/pp_tags/preprocessed.hpp"
+#pragma message(generating BOOST_FT_OUT_FILE)
+#pragma wave option(output: BOOST_FT_OUT_FILE, preserve: 2)
+#include <boost/function_types/detail/pp_tags/master.hpp>
+#pragma wave option(output: null)
+#undef BOOST_FT_OUT_FILE
+
+#define BOOST_FT_OUT_FILE \
+ "../../../boost/function_types/detail/pp_variate_loop/preprocessed.hpp"
+#pragma message(generating BOOST_FT_OUT_FILE)
+#pragma wave option(output: BOOST_FT_OUT_FILE, preserve: 2)
+#include <boost/function_types/detail/pp_variate_loop/master.hpp>
+#pragma wave option(output: null)
+#undef BOOST_FT_OUT_FILE
+
+#define BOOST_FT_OUT_FILE \
+ "../../../boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp"
+#pragma message(generating BOOST_FT_OUT_FILE)
+#pragma wave option(output: BOOST_FT_OUT_FILE, preserve: 2)
+#include <boost/function_types/detail/pp_retag_default_cc/master.hpp>
+#pragma wave option(output: null)
+
+#undef BOOST_FT_OUT_FILE
+
+
diff --git a/build/timestamps/arity_loops b/build/timestamps/arity_loops
new file mode 100644
index 0000000..f91091c
--- /dev/null
+++ b/build/timestamps/arity_loops
@@ -0,0 +1 @@
+timestamp file
diff --git a/build/timestamps/cc_names b/build/timestamps/cc_names
new file mode 100644
index 0000000..f91091c
--- /dev/null
+++ b/build/timestamps/cc_names
@@ -0,0 +1 @@
+timestamp file
diff --git a/build/timestamps/encoding b/build/timestamps/encoding
new file mode 100644
index 0000000..f91091c
--- /dev/null
+++ b/build/timestamps/encoding
@@ -0,0 +1 @@
+timestamp file