From 30e2c73725649556c51667b9811042729eb28a05 Mon Sep 17 00:00:00 2001
From: Lorenzo Caminiti <lorcaminiti@gmail.com>
Date: Wed, 28 Jan 2015 12:54:40 -0800
Subject: [PATCH] pasring postconditions

---
 .../ext_/preprocessor/traits/func.hpp         | 12 ++++----
 .../preprocessor/traits/func/aux_/index.hpp   |  2 +-
 .../traits/func/postconditions.hpp            | 29 ++++++++++---------
 3 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/include/boost/contract/ext_/preprocessor/traits/func.hpp b/include/boost/contract/ext_/preprocessor/traits/func.hpp
index 61ade0b..f384e02 100644
--- a/include/boost/contract/ext_/preprocessor/traits/func.hpp
+++ b/include/boost/contract/ext_/preprocessor/traits/func.hpp
@@ -2,7 +2,7 @@
 #ifndef BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_HPP_
 #define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_HPP_
 
-#include <boost/contract/ext_/preprocessor/traits/func/postcondition.hpp>
+#include <boost/contract/ext_/preprocessor/traits/func/postconditions.hpp>
 #include <boost/contract/ext_/preprocessor/traits/func/virt.hpp>
 #include <boost/contract/ext_/preprocessor/traits/func/except.hpp>
 #include <boost/contract/ext_/preprocessor/traits/func/ref.hpp>
@@ -30,14 +30,14 @@
 
 #if defined(BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_INDEX_TEST) && \
         BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_INDEX_TEST < \
-        BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_POSTCONDITION_INDEX
-#   define BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_POSTCONDITION_PARSE_D( \
+        BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_POSTCONDITIONS_INDEX
+#   define BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_POSTCONDITIONS_PARSE_D( \
             d, decl_traits) \
         decl_traits
 #else
-#   define BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_POSTCONDITION_PARSE_( \
+#   define BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_POSTCONDITIONS_PARSE_( \
             d, decl_traits) \
-        BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_PARSE_D(d, decl_traits)
+        BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_PARSE_D(d, decl_traits)
 #endif
 
 #if defined(BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_INDEX_TEST) && \
@@ -197,7 +197,7 @@
 // Implementation: These macros order must match INDEX values (see index.hpp).
 #define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_PARSE_D(d, decl) \
     BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_DONE_( \
-    BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_POSTCONDITION_PARSE_(d, \
+    BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_POSTCONDITIONS_PARSE_(d, \
     BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_VIRT_PARSE_( \
     BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_TRAILING_RETURN_PARSE_(d, \
     BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_EXCEPT_PARSE_( \
diff --git a/include/boost/contract/ext_/preprocessor/traits/func/aux_/index.hpp b/include/boost/contract/ext_/preprocessor/traits/func/aux_/index.hpp
index af7e050..b8c3616 100644
--- a/include/boost/contract/ext_/preprocessor/traits/func/aux_/index.hpp
+++ b/include/boost/contract/ext_/preprocessor/traits/func/aux_/index.hpp
@@ -44,7 +44,7 @@
 #define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_VIRT_INDEX \
     BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_OVERRIDE_INDEX
 
-#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_POSTCONDITION_INDEX   22
+#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_POSTCONDITIONS_INDEX  22
 
 // Must be greater than all indexes (i.e., very last one).
 #define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_MAX_INDEX             23
diff --git a/include/boost/contract/ext_/preprocessor/traits/func/postconditions.hpp b/include/boost/contract/ext_/preprocessor/traits/func/postconditions.hpp
index 182b41a..a5f0d46 100644
--- a/include/boost/contract/ext_/preprocessor/traits/func/postconditions.hpp
+++ b/include/boost/contract/ext_/preprocessor/traits/func/postconditions.hpp
@@ -1,6 +1,6 @@
 
-#ifndef BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_HPP_
-#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_HPP_
+#ifndef BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_HPP_
+#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_HPP_
 
 #include <boost/contract/ext_/preprocessor/traits/assertions.hpp>
 #include <boost/contract/ext_/preprocessor/keyword/contract/postcondition.hpp>
@@ -20,18 +20,18 @@
 // caller).
 
 // Extra level of indirection needed for proper macro expansion (on MSVC).
-#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_EXPAND_TRAITS_( \
+#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_EXPAND_TRAITS_( \
         decl_traits) \
     BOOST_PP_TUPLE_ELEM(2, 1, decl_traits)
 
 // Precondition: decl = `(,,,) ...` from `postcondition(,,,) ...` originally in
 // decl. This macro will also parse `(,,,)` into a pp-seq of assertion traits.
-#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_(d, decl, traits) \
+#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_(d, decl, traits) \
     ( \
         BOOST_PP_TUPLE_EAT(0) decl, \
         BOOST_CONTRACT_EXT_PP_TRAITS_PUSH_BACK( \
             traits, \
-            BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_EXPAND_TRAITS_( \
+            BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_EXPAND_TRAITS_( \
                 BOOST_CONTRACT_EXT_PP_ASSERTIONS_TRAITS_PARSE_D(d, \
                     BOOST_PP_EXPAND( \
                         BOOST_CONTRACT_EXT_PP_VARIADIC_ENUM_TO_SEQ \
@@ -39,40 +39,41 @@
                     ) \
                 ) \
             ) \
+            BOOST_PP_EMPTY \
         ) \
     )
 
 // Precondition: decl = `postcondition(,,,) ...`.
-#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_YES_(d, decl, traits) \
-    BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_(d, \
+#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_YES_(d, decl, traits) \
+    BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_(d, \
         BOOST_CONTRACT_EXT_PP_KEYWORD_POSTCONDITION_REMOVE_FRONT(decl), \
         traits \
     )
 
-#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_NO_( \
+#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_NO_( \
         unused, decl, traits) \
     (decl, BOOST_CONTRACT_EXT_PP_TRAITS_PUSH_BACK(traits, BOOST_PP_EMPTY))
 
-#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_PARSE_ARGS_( \
+#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_PARSE_ARGS_( \
         d, decl, traits) \
     BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_POSTCONDITION_FRONT(decl), \
-        BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_YES_ \
+        BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_YES_ \
     , \
-        BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_NO_ \
+        BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_NO_ \
     )(d, decl, traits)
 
 /* PUBLIC */
 
-#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_PARSE_D( \
+#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_PARSE_D( \
         d, decl_traits) \
-    BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION_PARSE_ARGS_(d, \
+    BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_PARSE_ARGS_(d, \
         BOOST_PP_TUPLE_ELEM(2, 0, decl_traits), \
         BOOST_PP_TUPLE_ELEM(2, 1, decl_traits) \
     )
 
 // Expand to pp-seq of postcondition assertion traits to be inspected via
 // ASSERTION_TRAITS macro, or to EMPTY() if no postconditions.
-#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITION(traits) \
+#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS(traits) \
     BOOST_CONTRACT_EXT_PP_TRAITS_ELEM( \
         BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_POSTCONDITIONS_INDEX, traits \
     )()