From b9d62d5ce1e3f92a8ab34239c6e4044ad57180df Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Thu, 13 Nov 2014 18:44:33 +0100 Subject: Replaced custom `Sequence` implementation with C++14 `std::integer_sequence` * both the `Sequence` and `IndexSequence` helper templates were developed prior to C++14 * as the new standard covers exactly the functionality provided by these templates they should be replaced ** they are used as indexes to the _Xalan_ parameter array in `FunctionBase` --- src/function/base.h | 10 +++++----- src/support/type/sequence.h | 29 ----------------------------- 2 files changed, 5 insertions(+), 34 deletions(-) delete mode 100644 src/support/type/sequence.h diff --git a/src/function/base.h b/src/function/base.h index fe1e821..b86aece 100644 --- a/src/function/base.h +++ b/src/function/base.h @@ -9,13 +9,13 @@ #include #include +#include #include "common.h" #include "support/xalan_string.h" #include "support/filesystem_context.h" #include "support/include_entity_resolver.h" #include "support/dom/document_cache.h" -#include "support/type/sequence.h" #include "support/type/filter.h" #include "support/type/xobject_value.h" @@ -56,7 +56,7 @@ class FunctionBase : public xalan::Function { xalan::XalanDocument* const domDocument( this->callConstructDocument( parameters, - typename IndexSequence::type() + std::make_integer_sequence() ) ); @@ -103,9 +103,9 @@ class FunctionBase : public xalan::Function { result.assign(std::string( startText + "between " - + std::to_string(minimum_parameter_count) + + std::to_string(minimum_parameter_count) + " and " - + std::to_string(maximum_parameter_count) + + std::to_string(maximum_parameter_count) + endText ).data()); } @@ -116,7 +116,7 @@ class FunctionBase : public xalan::Function { template xalan::XalanDocument* callConstructDocument( const XObjectArgVectorType& parameters, - Sequence + std::integer_sequence ) const { const FilesystemContext context; XObjectValue valueGetter(&context, this->include_resolver_); diff --git a/src/support/type/sequence.h b/src/support/type/sequence.h deleted file mode 100644 index a404e71..0000000 --- a/src/support/type/sequence.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef INPUTXSLT_SRC_SUPPORT_TYPE_SEQUENCE_H_ -#define INPUTXSLT_SRC_SUPPORT_TYPE_SEQUENCE_H_ - -#include -#include - -namespace InputXSLT { - -template -struct Sequence { - typedef Sequence type; -}; - -template < - std::size_t Size, - std::size_t Index = 0, - std::size_t... Current -> -struct IndexSequence { - typedef typename std::conditional< - Index < Size, - IndexSequence, - Sequence - >::type::type type; -}; - -} - -#endif // INPUTXSLT_SRC_SUPPORT_TYPE_SEQUENCE_H_ -- cgit v1.2.3