From 8dc8199e8761841878f893f60dd8b7abb3104c18 Mon Sep 17 00:00:00 2001
From: Lorenzo Caminiti
Date: Thu, 24 May 2012 01:35:04 +0000
Subject: [PATCH] Merged ScopeExit (improved), LocalFunction (new),
Functional/OverloadedFunction (new), and Utility/IdentityType (new) from
trunk into release branch.
[SVN r78564]
---
.gitmodules | 4 +++
libs/functional | 2 +-
libs/libraries.htm | 20 ++++++++---
libs/local_function | 1 +
libs/maintainers.txt | 7 ++--
libs/scope_exit | 2 +-
libs/utility | 2 +-
status/Jamfile.v2 | 3 ++
status/explicit-failures-markup.xml | 55 ++++++++++-------------------
9 files changed, 50 insertions(+), 46 deletions(-)
create mode 160000 libs/local_function
diff --git a/.gitmodules b/.gitmodules
index b370a973e1..76455a10f3 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -410,6 +410,10 @@
path = libs/container
url = ../container.git
fetchRecurseSubmodules = on-demand
+[submodule "local_function"]
+ path = libs/local_function
+ url = ../local_function.git
+ fetchRecurseSubmodules = on-demand
[submodule "context"]
path = libs/context
url = ../context.git
diff --git a/libs/functional b/libs/functional
index 1ad77fa8ba..681b79aaf9 160000
--- a/libs/functional
+++ b/libs/functional
@@ -1 +1 @@
-Subproject commit 1ad77fa8bab8d4c546817f22c718571f6edb5660
+Subproject commit 681b79aaf99d17d3f4cb11e118890bd297441b98
diff --git a/libs/libraries.htm b/libs/libraries.htm
index 082aac57ce..b3c822c4ff 100644
--- a/libs/libraries.htm
+++ b/libs/libraries.htm
@@ -148,6 +148,8 @@ how to download, build, and install the libraries.
functional/hash -
A TR1 hash function object that can be extended to hash user defined
types, from Daniel James.
+ functional/overloaded_function -
+ Overload different functions into a single function object, from Lorenzo Caminiti.
fusion -
Library for working with tuples, including various containers, algorithms, etc.
From Joel de Guzman, Dan Marsden and Tobias Schwinger.
@@ -163,6 +165,8 @@ how to download, build, and install the libraries.
icl -
Interval Container Library, interval sets and maps and aggregation
of associated values, from Joachim Faulhaber.
+ identity_type -
+ Wrap types within round parenthesis so they can always be passed as macro parameters, from Lorenzo Caminiti.
integer - Headers to ease
dealing with integral types.
interprocess - Shared memory, memory mapped files,
@@ -181,6 +185,8 @@ how to download, build, and install the libraries.
lambda - Define small unnamed
function objects at the actual call site, and more, from Jaakko Järvi and
Gary Powell.
+ local_function -
+ Program functions locally, within other functions, directly within the scope where they are needed, from Lorenzo Caminiti.
locale - Provide localization and Unicode
handling tools for C++, from Artyom Beilis
lexical_cast - General literal text conversions, such as an int
represented as
@@ -271,8 +277,8 @@ how to download, build, and install the libraries.
regex - Regular expression
library, from John Maddock.
result_of - determines the type of a function call expression.
- scope_exit
- - Execute arbitrary code at scope exit, from Alexander Nasonov.
+ scope_exit -
+ Execute arbitrary code at scope exit, from Alexander Nasonov and Lorenzo Caminiti.
serialization
- Serialization for persistence and marshalling, from Robert Ramey
signals - managed signals &
@@ -514,9 +520,13 @@ how to download, build, and install the libraries.
functional/hash -
A TR1 hash function object that can be extended to hash user defined
types, from Daniel James.
+ functional/overloaded_function -
+ Overload different functions into a single function object, from Lorenzo Caminiti.
lambda - Define small unnamed
function objects at the actual call site, and more, from Jaakko Järvi and
Gary Powell.
+ local_function -
+ Program functions locally, within other functions, directly within the scope where they are needed, from Lorenzo Caminiti.
Phoenix - Define small unnamed
function objects at the actual call site, and more, from Joel de Guzman, Dan
Marsden and Thomas Heller
@@ -630,8 +640,8 @@ of arbitrary data for persistence and marshalling, from Robert Ramey
"parameter/doc/html/index.html">parameter -
Write functions that accept arguments by name, by David Abrahams
and Daniel Wallin.
- scope_exit
- - Execute arbitrary code at scope exit, from Alexander Nasonov.
+ scope_exit -
+ Execute arbitrary code at scope exit, from Alexander Nasonov and Lorenzo Caminiti.
typeof -
Typeof operator emulation, from Arkadiy Vertleyb and Peder Holt.
@@ -754,6 +764,8 @@ of arbitrary data for persistence and marshalling, from Robert Ramey
+ - identity_type -
+ Wrap types within round parenthesis so they can always be passed as macro parameters, from Lorenzo Caminiti.
- preprocessor - Preprocessor
metaprogramming tools including repetition and recursion, from Vesa Karvonen
and Paul Mensonides.
diff --git a/libs/local_function b/libs/local_function
new file mode 160000
index 0000000000..290103d629
--- /dev/null
+++ b/libs/local_function
@@ -0,0 +1 @@
+Subproject commit 290103d629af3dedc19fabc234b4bf829fa6b746
diff --git a/libs/maintainers.txt b/libs/maintainers.txt
index eb39f2ec9a..204475f5d4 100644
--- a/libs/maintainers.txt
+++ b/libs/maintainers.txt
@@ -39,6 +39,7 @@ functional
functional/factory Tobias Schwinger
functional/forward Tobias Schwinger
functional/hash Daniel James
+functional/overloaded_function Lorenzo Caminiti
fusion Joel de Guzman , Dan Marsden , Tobias Schwinger
function_types Tobias Schwinger
geometry Barend Gehrels, Bruno Lalande , Mateusz Loskot
@@ -53,6 +54,7 @@ io Daryle Walker
iostreams Jonathan Turkanis
iterator David Abrahams , Thomas Witt
lambda Jaakko Jarvi
+local_function Lorenzo Caminiti
locale Artyom Beilis
logic Douglas Gregor
math Hubert Holin , John Maddock
@@ -82,7 +84,7 @@ range Neil Groves
ratio Vicente J. Botet Escriba
rational Jonathan Turkanis
regex John Maddock
-scope_exit Alexander Nasonov
+scope_exit Alexander Nasonov , Lorenzo Caminiti
serialization Robert Ramey
signals Douglas Gregor
signals2 Frank Mori Hess
@@ -101,8 +103,9 @@ typeof Arkadiy Vertleyb , Peder Holt <
units Matthias Schabel , Steven Watanabe
unordered Daniel James
utility
-utility/result_of Daniel Walker
utility/enable_if Jaakko Jarvi , Jeremiah Willcock
+utility/identity_type Lorenzo Caminiti
+utility/result_of Daniel Walker
utility/swap Joseph Gauterin
uuid Andy Tompkins
variant Eric Friedman
diff --git a/libs/scope_exit b/libs/scope_exit
index fab7538f6c..2a96d2234d 160000
--- a/libs/scope_exit
+++ b/libs/scope_exit
@@ -1 +1 @@
-Subproject commit fab7538f6c065f234011adedd7efb9195234c677
+Subproject commit 2a96d2234d6d7917278bb39196df93424b1739a4
diff --git a/libs/utility b/libs/utility
index 7aa68731b4..6b9f0103d5 160000
--- a/libs/utility
+++ b/libs/utility
@@ -1 +1 @@
-Subproject commit 7aa68731b4c4e872eb28b145db6d6b6ccd4bf916
+Subproject commit 6b9f0103d50b47eebafbf7f77a84267e37a3efbe
diff --git a/status/Jamfile.v2 b/status/Jamfile.v2
index 9e3578e0d0..fd9ff2d0d3 100644
--- a/status/Jamfile.v2
+++ b/status/Jamfile.v2
@@ -78,6 +78,7 @@ run-tests libs :
functional/factory/test # test-suite functional/factory
functional/forward/test # test-suite functional/forward
functional/hash/test # test-suite functional/hash
+ functional/overloaded_function/test # test-suite func./overloaded_function
function_types/test # test-suite function_types
fusion/test # test-suite fusion
geometry/test # test-suite geometry
@@ -95,6 +96,7 @@ run-tests libs :
iostreams/test # test-suite iostreams
iterator/test # test-suite iterator
lambda/test # test-suite lambda
+ local_function/test # test-suite local_function
locale/test # test-suite locale
logic/test # test-suite logic
math/test # test-suite math
@@ -149,6 +151,7 @@ run-tests libs :
unordered/test/unordered # test-suite unordered
unordered/test/exception # test-suite unordered-exception
utility/enable_if/test # test-suite utility/enable_if
+ utility/identity_type/test # test-suite utility/identity_type
utility/swap/test # test-suite utility/swap
utility/test # test-suite utility
uuid/test # test-suite uuid
diff --git a/status/explicit-failures-markup.xml b/status/explicit-failures-markup.xml
index 61c1302280..939ce4271a 100644
--- a/status/explicit-failures-markup.xml
+++ b/status/explicit-failures-markup.xml
@@ -1942,14 +1942,6 @@
-
-
-
-
-
-
-
-
@@ -2451,6 +2443,10 @@
+
+
+
+
@@ -2473,7 +2469,7 @@
-
+
@@ -2491,9 +2487,15 @@
+
+
-
+
+
+
+
+
This test does not allow C++11 auto-declaration support
(beccause it uses the `auto` keyword as storage classifier).
@@ -4981,6 +4983,10 @@ for more information.
+
+
+
+
@@ -5026,35 +5032,10 @@ for more information.
-
-
-
-
-
-
-
-
-
-
- This compiler does not support native type-of and type-of
- emulation mode is not atuomatically detected for this compiler
- (force it by defining the BOOST_TYPEOF_EMULATION macro).
-
-
-
-
-
-
-
-
-
-
-
-
- This compiler cannot capture the object `this` using type-of
- emulation mode (use native type-of instead).
+ This compiler does not support native type-of (force type-of
+ emulation mode defining the BOOST_TYPEOF_EMULATION macro).