parsing lvalue and rvalue references

This commit is contained in:
Lorenzo Caminiti
2015-01-13 16:05:02 -08:00
parent a404169734
commit aaac02844e
100 changed files with 322 additions and 97 deletions

View File

@@ -103,11 +103,12 @@ entries = [
{
'directory': 'contract',
'keywords': [
'invariant',
'precondition',
'postcondition',
'extends',
'verbatim'
'verbatim',
'ref',
'refref'
]
}
]

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_ALIGNAS_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_ALIGNOF_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_AND_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_AND_EQ_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_ASM_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_AUTO_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_BITAND_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_BITOR_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_BOOL_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_BREAK_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_CASE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_CATCH_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_CHAR_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_CHAR16_T_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_CHAR32_T_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_CLASS_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_COMPL_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_CONST_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_CONST_CAST_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_CONSTEXPR_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_CONTINUE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_EXTENDS_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_POSTCONDITION_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_PRECONDITION_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -0,0 +1,48 @@
#ifndef BOOST_CONTRACT_EXT_PP_KEYWORD_REF_HPP_
#define BOOST_CONTRACT_EXT_PP_KEYWORD_REF_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>
/* PRIVATE */
// Must expand to a single comma `,` (not local macros, do not #undefine).
#define BOOST_CONTRACT_EXT_PP_KEYWORD_REF_CAT_TO_COMMAref ,
#define refBOOST_CONTRACT_EXT_PP_KEYWORD_REF_CAT_TO_COMMA ,
// Must expand to empty `` (not local macros, do not #undefine).
#define BOOST_CONTRACT_EXT_PP_KEYWORD_REF_CAT_TO_EMPTYref
#define refBOOST_CONTRACT_EXT_PP_KEYWORD_REF_CAT_TO_EMPTY
/* PUBLIC */
// Precondition: tokens must start with a token concatenable to a macro name
// (e.g., a literal or integral token) or with parenthesis.
#define BOOST_CONTRACT_EXT_PP_KEYWORD_IS_REF_FRONT(tokens) \
BOOST_CONTRACT_EXT_PP_KEYWORD_UTILITY_IS_FRONT( \
BOOST_CONTRACT_EXT_PP_KEYWORD_REF_CAT_TO_COMMA, tokens)
// Precondition: tokens must end with a token concatenable to a macro name
// (e.g., a literal or integral token) or with parenthesis.
#define BOOST_CONTRACT_EXT_PP_KEYWORD_IS_REF_BACK(tokens) \
BOOST_CONTRACT_EXT_PP_KEYWORD_UTILITY_IS_BACK( \
BOOST_CONTRACT_EXT_PP_KEYWORD_REF_CAT_TO_COMMA, tokens)
// Precondition: tokens must start with `ref` (this can be
// checked with `..._IS_REF_FRONT` macro above).
#define BOOST_CONTRACT_EXT_PP_KEYWORD_REF_REMOVE_FRONT(tokens) \
BOOST_CONTRACT_EXT_PP_KEYWORD_UTILITY_REMOVE_FRONT( \
BOOST_CONTRACT_EXT_PP_KEYWORD_REF_CAT_TO_EMPTY, tokens)
// Precondition: tokens must end with `ref` (this can be
// checked with `..._IS_REF_BACK` macro above).
#define BOOST_CONTRACT_EXT_PP_KEYWORD_REF_REMOVE_BACK(tokens) \
BOOST_CONTRACT_EXT_PP_KEYWORD_UTILITY_REMOVE_BACK( \
BOOST_CONTRACT_EXT_PP_KEYWORD_REF_CAT_TO_EMPTY, tokens)
#endif // #include guard

View File

@@ -0,0 +1,48 @@
#ifndef BOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_HPP_
#define BOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>
/* PRIVATE */
// Must expand to a single comma `,` (not local macros, do not #undefine).
#define BOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_CAT_TO_COMMArefref ,
#define refrefBOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_CAT_TO_COMMA ,
// Must expand to empty `` (not local macros, do not #undefine).
#define BOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_CAT_TO_EMPTYrefref
#define refrefBOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_CAT_TO_EMPTY
/* PUBLIC */
// Precondition: tokens must start with a token concatenable to a macro name
// (e.g., a literal or integral token) or with parenthesis.
#define BOOST_CONTRACT_EXT_PP_KEYWORD_IS_REFREF_FRONT(tokens) \
BOOST_CONTRACT_EXT_PP_KEYWORD_UTILITY_IS_FRONT( \
BOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_CAT_TO_COMMA, tokens)
// Precondition: tokens must end with a token concatenable to a macro name
// (e.g., a literal or integral token) or with parenthesis.
#define BOOST_CONTRACT_EXT_PP_KEYWORD_IS_REFREF_BACK(tokens) \
BOOST_CONTRACT_EXT_PP_KEYWORD_UTILITY_IS_BACK( \
BOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_CAT_TO_COMMA, tokens)
// Precondition: tokens must start with `refref` (this can be
// checked with `..._IS_REFREF_FRONT` macro above).
#define BOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_REMOVE_FRONT(tokens) \
BOOST_CONTRACT_EXT_PP_KEYWORD_UTILITY_REMOVE_FRONT( \
BOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_CAT_TO_EMPTY, tokens)
// Precondition: tokens must end with `refref` (this can be
// checked with `..._IS_REFREF_BACK` macro above).
#define BOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_REMOVE_BACK(tokens) \
BOOST_CONTRACT_EXT_PP_KEYWORD_UTILITY_REMOVE_BACK( \
BOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_CAT_TO_EMPTY, tokens)
#endif // #include guard

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_VERBATIM_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_DECLTYPE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_DEFAULT_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_DELETE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_DO_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_DOUBLE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_DYNAMIC_CAST_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_ELSE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_ENUM_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_EXPLICIT_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_EXPORT_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_EXTERN_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_FALSE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_FINAL_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_FLOAT_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_FOR_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_FRIEND_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_GOTO_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_IF_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_INLINE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_INT_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_LONG_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_MUTABLE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_NAMESPACE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_NEW_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_NOEXCEPT_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_NOT_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_NOT_EQ_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_NULLPTR_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_OPERATOR_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_OR_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_OR_EQ_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_OVERRIDE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_PRIVATE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_PROTECTED_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_PUBLIC_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_REGISTER_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_REINTERPRET_CAST_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_RETURN_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_SHORT_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_SIGNED_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_SIZEOF_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_STATIC_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_STATIC_ASSERT_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_STATIC_CAST_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_STRUCT_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_SWITCH_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_TEMPLATE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_THIS_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_THREAD_LOCAL_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_THROW_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_TRUE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_TRY_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_TYPEDEF_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_TYPEID_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_TYPENAME_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_UNION_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_UNSIGNED_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_USING_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_VIRTUAL_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_VOID_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_VOLATILE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_WCHAR_T_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_WHILE_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_XOR_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_KEYWORD_XOR_EQ_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run the related generation script "generate.py".
// Instead, modify and run related generation script "keyword-generate.py".
#include <boost/contract/ext_/preprocessor/keyword/utility/is.hpp>
#include <boost/contract/ext_/preprocessor/keyword/utility/remove.hpp>

View File

@@ -14,10 +14,13 @@
#include <boost/preprocessor/facilities/empty.hpp>
#include <boost/preprocessor/tuple/rem.hpp>
// PUBLIC //
/* PUBLIC */
// A keyword (among 1 single possible one).
// TODO: Consider listing keyword before is_keyword_macro (in general:
// keyword, is_keyword_macro, remove_keyword_macro, etc.).
// IMPLEMENTATION: EXPAND needed for MSVC.
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD( \
tokens, \
@@ -63,6 +66,34 @@
BOOST_PP_TUPLE_REM(1) \
))(tokens)
// A keyword among 2 possible ones.
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2( \
tokens, \
is_keyword_macro1, keyword1, \
is_keyword_macro2, keyword2 \
) \
BOOST_PP_IIF(is_keyword_macro1(tokens), \
keyword1 BOOST_PP_EMPTY \
, BOOST_PP_IIF(is_keyword_macro2(tokens), \
keyword2 BOOST_PP_EMPTY \
, \
BOOST_PP_EMPTY \
))()
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_SKIP(\
tokens, \
is_keyword_macro1, remove_keyword_macro1, \
is_keyword_macro2, remove_keyword_macro2 \
) \
BOOST_PP_IIF(is_keyword_macro1(tokens), \
remove_keyword_macro1 \
, BOOST_PP_IIF(is_keyword_macro2(tokens), \
remove_keyword_macro2 \
, \
BOOST_PP_TUPLE_REM(1) \
))(tokens)
// A keyword among 3 possible ones.
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD3( \

View File

@@ -8,6 +8,7 @@
#ifndef BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_HPP_
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_HPP_
#include <boost/contract/ext_/preprocessor/traits/func/ref.hpp>
#include <boost/contract/ext_/preprocessor/traits/func/cv_qualifiers.hpp>
#include <boost/contract/ext_/preprocessor/traits/func/params.hpp>
#include <boost/contract/ext_/preprocessor/traits/func/name.hpp>
@@ -25,6 +26,16 @@
// NOTE: These macros #definitions read TRITS_FUNC instead of FUNC_TRAITS to
// avoid name clashes with macro #define in func/*.
#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_REF_INDEX
# define BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_REF_(sign_traits) \
sign_traits
#else
# define BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_REF_(sign_traits) \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF_PARSE(sign_traits)
#endif
#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_CV_QUALIFIERS_INDEX
@@ -132,6 +143,7 @@
// WARNING: Order of these macros must match ..._INDEX values (see index.hpp).
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS(sign) \
BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_DONE_( \
BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_REF_( \
BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_CV_QUALIFIERS_( \
BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_PARAMS_( \
BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_NAME_( \
@@ -143,7 +155,7 @@
BOOST_CONTRACT_EXT_PP_TRAITS_FUNC_ACCESS_( \
BOOST_CONTRACT_EXT_PP_SIGN_TRAITS_INIT( \
sign \
)))))))))))
))))))))))))
#endif // #include guard

View File

@@ -36,7 +36,9 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_CV_QUALIFIERS_INDEX \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_VOLATILE_INDEX
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_DONE_INDEX 17
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_REF_INDEX 17
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_DONE_INDEX 18
#endif // #include guard

View File

@@ -0,0 +1,48 @@
#ifndef BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF_HPP_
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF_HPP_
#include <boost/contract/ext_/preprocessor/traits/func/aux_/index.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/adt.hpp>
#include <boost/contract/ext_/preprocessor/keyword/contract/ref.hpp>
#include <boost/contract/ext_/preprocessor/keyword/contract/refref.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
/* PRIVATE */
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF_SIGN_(sign, traits) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_SKIP( \
sign, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_REF_FRONT, \
BOOST_CONTRACT_EXT_PP_KEYWORD_REF_REMOVE_FRONT, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_REFREF_FRONT, \
BOOST_CONTRACT_EXT_PP_KEYWORD_REFREF_REMOVE_FRONT \
)
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF_TRAIT_(sign, traits) \
BOOST_CONTRACT_EXT_PP_TRAITS_PUSH_BACK(traits, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2( \
sign, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_REF_FRONT, ref, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_REFREF_FRONT, refref \
) \
BOOST_PP_EMPTY \
)
/* PUBLIC */
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF_PARSE(sign_traits) \
( \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF_SIGN_ sign_traits \
, \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF_TRAIT_ sign_traits \
)
// Expand to `ref | refref | EMPTY()` (ref for lvalue &, refref for rvalue &&).
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF(traits) \
BOOST_CONTRACT_EXT_PP_TRAITS_ELEM( \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_REF_INDEX, traits)()
#endif // #include guard