From 35ffd24fdde2d6fcb9394881b696d2f3684e7d9c Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Wed, 2 May 2018 16:05:23 +0200 Subject: [PATCH] redesign normalization --- .../src/abstraction/NormalizeAbstraction.hpp | 7 ++- alib2abstraction/src/core/normalize.hpp | 10 ++-- .../src/factory/NormalizeFactory.hpp | 48 +++++++++++++++++++ .../NormalizationRegistration.hpp | 2 +- .../src/registry/NormalizeRegistry.hpp | 4 +- alib2common/src/container/ObjectsDeque.h | 15 ++---- alib2common/src/container/ObjectsList.h | 15 ++---- alib2common/src/container/ObjectsMap.h | 14 ++---- alib2common/src/container/ObjectsPair.h | 24 ++-------- alib2common/src/container/ObjectsSet.h | 15 ++---- alib2common/src/container/ObjectsTree.h | 15 ++---- alib2common/src/container/ObjectsTrie.h | 17 ++----- alib2common/src/container/ObjectsVector.h | 15 ++---- .../test-src/container/ContainerTest.cpp | 20 ++++++++ alib2data/src/alphabet/BarSymbol.h | 2 - alib2data/src/alphabet/BlankSymbol.h | 2 - .../src/alphabet/BottomOfTheStackSymbol.h | 2 - alib2data/src/alphabet/EndSymbol.h | 2 - alib2data/src/alphabet/InitialSymbol.h | 2 - alib2data/src/alphabet/LabeledSymbol.h | 2 - .../src/alphabet/NonlinearVariableSymbol.h | 4 +- alib2data/src/alphabet/RankedSymbol.h | 13 +---- alib2data/src/alphabet/StartSymbol.h | 2 - .../src/alphabet/SubtreeWildcardSymbol.h | 2 - alib2data/src/alphabet/UniqueSymbol.h | 2 - alib2data/src/alphabet/VariablesBarSymbol.h | 2 - alib2data/src/automaton/FSM/CompactNFA.h | 7 +-- alib2data/src/automaton/FSM/DFA.h | 7 +-- alib2data/src/automaton/FSM/EpsilonNFA.h | 7 +-- alib2data/src/automaton/FSM/ExtendedNFA.h | 7 +-- .../src/automaton/FSM/MultiInitialStateNFA.h | 7 +-- alib2data/src/automaton/FSM/NFA.h | 7 +-- alib2data/src/automaton/PDA/DPDA.h | 7 +-- alib2data/src/automaton/PDA/InputDrivenDPDA.h | 7 +-- alib2data/src/automaton/PDA/InputDrivenNPDA.h | 7 +-- alib2data/src/automaton/PDA/NPDA.h | 7 +-- alib2data/src/automaton/PDA/NPDTA.h | 7 +-- .../PDA/RealTimeHeightDeterministicDPDA.h | 7 +-- .../PDA/RealTimeHeightDeterministicNPDA.h | 7 +-- alib2data/src/automaton/PDA/SinglePopDPDA.h | 7 +-- alib2data/src/automaton/PDA/SinglePopNPDA.h | 7 +-- .../src/automaton/PDA/VisiblyPushdownDPDA.h | 7 +-- .../src/automaton/PDA/VisiblyPushdownNPDA.h | 7 +-- alib2data/src/automaton/TA/DFTA.h | 7 +-- alib2data/src/automaton/TA/NFTA.h | 7 +-- alib2data/src/automaton/TM/OneTapeDTM.h | 7 +-- alib2data/src/grammar/ContextFree/CFG.h | 7 +-- alib2data/src/grammar/ContextFree/CNF.h | 7 +-- .../src/grammar/ContextFree/EpsilonFreeCFG.h | 7 +-- alib2data/src/grammar/ContextFree/GNF.h | 7 +-- alib2data/src/grammar/ContextFree/LG.h | 7 +-- alib2data/src/grammar/ContextSensitive/CSG.h | 7 +-- .../ContextSensitive/NonContractingGrammar.h | 7 +-- alib2data/src/grammar/Regular/LeftLG.h | 7 +-- alib2data/src/grammar/Regular/LeftRG.h | 7 +-- alib2data/src/grammar/Regular/RightLG.h | 7 +-- alib2data/src/grammar/Regular/RightRG.h | 7 +-- .../ContextPreservingUnrestrictedGrammar.h | 7 +-- .../Unrestricted/UnrestrictedGrammar.h | 7 +-- .../arbology/CompressedBitParallelTreeIndex.h | 4 +- .../src/indexes/arbology/FullAndLinearIndex.h | 4 +- .../NonlinearCompressedBitParallelTreeIndex.h | 4 +- .../arbology/NonlinearFullAndLinearIndex.h | 4 +- .../src/indexes/stringology/BNDMMatcher.h | 11 +---- .../indexes/stringology/BitParallelIndex.h | 4 +- .../stringology/CompressedBitParallelIndex.h | 4 +- .../stringology/FactorOracleAutomaton.h | 4 +- .../src/indexes/stringology/PositionHeap.h | 11 +---- .../src/indexes/stringology/SuffixArray.h | 7 +-- .../src/indexes/stringology/SuffixAutomaton.h | 7 +-- .../src/indexes/stringology/SuffixTrie.h | 7 +-- alib2data/src/label/FailStateLabel.h | 2 - alib2data/src/label/FinalStateLabel.h | 2 - alib2data/src/label/HexavigesimalLabel.h | 2 - alib2data/src/label/InitialStateLabel.h | 2 - alib2data/src/label/ObjectLabel.h | 2 - alib2data/src/label/PrimitiveLabel.h | 2 - alib2data/src/label/UniqueLabel.h | 2 - alib2data/src/regexp/formal/FormalRegExp.h | 7 +-- .../src/regexp/unbounded/UnboundedRegExp.h | 7 +-- alib2data/src/rte/formal/FormalRTE.h | 7 +-- alib2data/src/string/CyclicString.h | 7 +-- alib2data/src/string/Epsilon.h | 7 +-- alib2data/src/string/LinearString.h | 7 +-- alib2data/src/tree/ranked/PostfixRankedTree.h | 7 +-- .../ranked/PrefixRankedBarNonlinearPattern.h | 7 +-- .../src/tree/ranked/PrefixRankedBarPattern.h | 7 +-- .../src/tree/ranked/PrefixRankedBarTree.h | 7 +-- .../ranked/PrefixRankedNonlinearPattern.h | 7 +-- .../src/tree/ranked/PrefixRankedPattern.h | 7 +-- alib2data/src/tree/ranked/PrefixRankedTree.h | 7 +-- .../src/tree/ranked/RankedNonlinearPattern.h | 7 +-- alib2data/src/tree/ranked/RankedPattern.h | 7 +-- alib2data/src/tree/ranked/RankedTree.h | 7 +-- alib2data/src/tree/unranked/PrefixBarTree.h | 7 +-- .../tree/unranked/UnrankedNonlinearPattern.h | 7 +-- alib2data/src/tree/unranked/UnrankedPattern.h | 7 +-- alib2data/src/tree/unranked/UnrankedTree.h | 7 +-- .../directed/AdjacencyListDirectedGraph.h | 2 - .../directed/AdjacencyMatrixDirectedGraph.h | 2 - .../undirected/AdjacencyListUndirectedGraph.h | 2 - .../AdjacencyMatrixUndirectedGraph.h | 2 - .../CompactSuffixAutomatonTerminatingSymbol.h | 4 +- .../stringology/SuffixTrieTerminatingSymbol.h | 2 - .../string/LinearStringTerminatingSymbol.h | 2 - 105 files changed, 175 insertions(+), 555 deletions(-) create mode 100644 alib2abstraction/src/factory/NormalizeFactory.hpp diff --git a/alib2abstraction/src/abstraction/NormalizeAbstraction.hpp b/alib2abstraction/src/abstraction/NormalizeAbstraction.hpp index a007a0a43e..e81156b1d5 100644 --- a/alib2abstraction/src/abstraction/NormalizeAbstraction.hpp +++ b/alib2abstraction/src/abstraction/NormalizeAbstraction.hpp @@ -10,7 +10,7 @@ #include <abstraction/UnaryOperationAbstraction.hpp> -#include <core/normalize.hpp> +#include <factory/NormalizeFactory.hpp> namespace abstraction { @@ -24,7 +24,10 @@ public: if ( this->cached ( ) ) return true; - this->m_data = core::normalize < ParamType >::eval ( std::get < 0 > ( this->m_params )->getValue ( std::get < 0 > ( this->m_moves ) ) ); + ParamType && param = std::get < 0 > ( this->m_params )->getValue ( std::get < 0 > ( this->m_moves ) ); + ReturnType res = factory::NormalizeFactory::normalize ( std::move ( param ) ); + + this->m_data = std::move ( res ); return true; } diff --git a/alib2abstraction/src/core/normalize.hpp b/alib2abstraction/src/core/normalize.hpp index 29b83061cb..3e56351d05 100644 --- a/alib2abstraction/src/core/normalize.hpp +++ b/alib2abstraction/src/core/normalize.hpp @@ -10,15 +10,11 @@ namespace core { -template < typename T, typename Enable = void > +template < typename T > struct normalize { }; -template < typename Type > -struct normalize < Type, typename std::enable_if < std::is_same < Type, typename Type::normalized_type >::value >::type > { - static Type && eval ( Type && value ) { - return std::move ( value ); - } -}; +template < class ReturnType > +using normalizationResult = typename std::decay < typename std::result_of < decltype ( & core::normalize < ReturnType >::eval ) ( ReturnType && ) >::type >::type; } /* namespace core */ diff --git a/alib2abstraction/src/factory/NormalizeFactory.hpp b/alib2abstraction/src/factory/NormalizeFactory.hpp new file mode 100644 index 0000000000..f4be5e06b3 --- /dev/null +++ b/alib2abstraction/src/factory/NormalizeFactory.hpp @@ -0,0 +1,48 @@ +/* + * NormalizeFactory.hpp + * + * Created on: Jan 1, 2014 + * Author: Jan Travnicek + */ + +#ifndef NORMALIZE_FACTORY_HPP +#define NORMALIZE_FACTORY_HPP + +#include <alib/type_traits> +#include <utility> + +#include <core/normalize.hpp> + +namespace factory { + +class NormalizeFactory { +public: + template < class SourceType > + class normalizer { + SourceType && m_source; + + public: + normalizer ( SourceType && source ) : m_source ( std::move ( source ) ) { + } + + template < class TargetType, typename std::enable_if < std::is_same < TargetType, SourceType >::value >::type * = nullptr > + operator TargetType ( ) { + return TargetType ( std::move ( m_source ) ); + } + + template < class TargetType, typename std::enable_if < ! std::is_same < TargetType, SourceType >::value >::type * = nullptr > + operator TargetType ( ) { + return core::normalize < SourceType >::eval ( std::move ( m_source ) ); + } + }; + + template < class SourceType > + static normalizer < SourceType > normalize ( SourceType && source ) { + return normalizer < SourceType > ( std::move ( source ) ); + } + +}; + +} /* namespace factory */ + +#endif /* NORMALIZE_FACTORY_HPP */ diff --git a/alib2abstraction/src/registration/NormalizationRegistration.hpp b/alib2abstraction/src/registration/NormalizationRegistration.hpp index c15c027716..78a4144222 100644 --- a/alib2abstraction/src/registration/NormalizationRegistration.hpp +++ b/alib2abstraction/src/registration/NormalizationRegistration.hpp @@ -17,7 +17,7 @@ public: }; template < class ReturnType > -class NormalizationRegister < ReturnType, typename std::enable_if < ! std::is_same < ReturnType, typename ReturnType::normalized_type >::value >::type > { +class NormalizationRegister < ReturnType, typename std::enable_if < ! std::is_same < ReturnType, core::normalizationResult < ReturnType > >::value >::type > { public: NormalizationRegister ( ) { abstraction::NormalizeRegistry::registerNormalize < ReturnType > ( ); diff --git a/alib2abstraction/src/registry/NormalizeRegistry.hpp b/alib2abstraction/src/registry/NormalizeRegistry.hpp index bd545349b5..33e2e963db 100644 --- a/alib2abstraction/src/registry/NormalizeRegistry.hpp +++ b/alib2abstraction/src/registry/NormalizeRegistry.hpp @@ -14,6 +14,8 @@ #include <abstraction/OperationAbstraction.hpp> +#include <core/normalize.hpp> + namespace abstraction { class NormalizeRegistry { @@ -68,7 +70,7 @@ namespace abstraction { template < class Param > std::shared_ptr < abstraction::OperationAbstraction > NormalizeRegistry::EntryImpl < Param >::getAbstraction ( ) const { - return std::make_shared < NormalizeAbstraction < typename Param::normalized_type, Param > > ( ); + return std::make_shared < NormalizeAbstraction < core::normalizationResult < Param >, Param > > ( ); } } /* namespace abstraction */ diff --git a/alib2common/src/container/ObjectsDeque.h b/alib2common/src/container/ObjectsDeque.h index fa84ce3d97..aa421c50ec 100644 --- a/alib2common/src/container/ObjectsDeque.h +++ b/alib2common/src/container/ObjectsDeque.h @@ -16,7 +16,7 @@ #include "ContainerFeatures.h" #include <object/UniqueObject.h> -#include <object/AnyObject.h> +#include <object/ObjectFactory.h> #include <core/normalize.hpp> @@ -49,8 +49,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef ObjectsDeque < > normalized_type; }; template < class ElementType > @@ -99,27 +97,20 @@ object::ObjectBase* ObjectsDeque < ElementType >::inc() && { namespace core { -template < > -struct normalize < ext::deque < object::Object > > { - static ext::deque < object::Object > && eval ( ext::deque < object::Object > && source ) { - return std::move ( source ); - } -}; - template < class ElementType > struct normalize < ext::deque < ElementType > > { static ext::deque < object::Object > eval ( ext::deque < ElementType > && source ) { ext::deque < object::Object > res; for ( ElementType & element : source ) - res.push_back ( object::Object ( object::AnyObject < ElementType > ( std::move ( element ) ) ) ); + res.push_back ( object::ObjectFactory::make ( std::move ( element ) ) ); return res; } }; template < class ElementType > -struct normalize < container::ObjectsDeque < ElementType >, typename std::enable_if < ! std::is_same < container::ObjectsDeque < ElementType >, container::ObjectsDeque < > >::value >::type > { +struct normalize < container::ObjectsDeque < ElementType > > { static container::ObjectsDeque < > eval ( container::ObjectsDeque < ElementType > && value ) { return container::ObjectsDeque < > ( normalize < ext::deque < ElementType > >::eval ( std::move ( value ) ) ); } diff --git a/alib2common/src/container/ObjectsList.h b/alib2common/src/container/ObjectsList.h index e01f4be008..693dbc2a8e 100644 --- a/alib2common/src/container/ObjectsList.h +++ b/alib2common/src/container/ObjectsList.h @@ -16,7 +16,7 @@ #include "ContainerFeatures.h" #include <object/UniqueObject.h> -#include <object/AnyObject.h> +#include <object/ObjectFactory.h> #include <core/normalize.hpp> @@ -49,8 +49,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef ObjectsList < > normalized_type; }; template < class ElementType > @@ -99,27 +97,20 @@ object::ObjectBase* ObjectsList < ElementType >::inc() && { namespace core { -template < > -struct normalize < ext::list < object::Object > > { - static ext::list < object::Object > && eval ( ext::list < object::Object > && source ) { - return std::move ( source ); - } -}; - template < class ElementType > struct normalize < ext::list < ElementType > > { static ext::list < object::Object > eval ( ext::list < ElementType > && source ) { ext::list < object::Object > res; for ( ElementType & element : source ) - res.push_back ( object::Object ( object::AnyObject < ElementType > ( std::move ( element ) ) ) ); + res.push_back ( object::ObjectFactory::make ( std::move ( element ) ) ); return res; } }; template < class ElementType > -struct normalize < container::ObjectsList < ElementType >, typename std::enable_if < ! std::is_same < container::ObjectsList < ElementType >, container::ObjectsList < > >::value >::type > { +struct normalize < container::ObjectsList < ElementType > > { static container::ObjectsList < > eval ( container::ObjectsList < ElementType > && value ) { return container::ObjectsList < > ( normalize < ext::list < ElementType > >::eval ( std::move ( value ) ) ); } diff --git a/alib2common/src/container/ObjectsMap.h b/alib2common/src/container/ObjectsMap.h index dbb006dfab..5f07f1c730 100644 --- a/alib2common/src/container/ObjectsMap.h +++ b/alib2common/src/container/ObjectsMap.h @@ -16,9 +16,10 @@ #include "ContainerFeatures.h" #include <object/UniqueObject.h> -#include <object/AnyObject.h> +#include <object/ObjectFactory.h> #include <core/normalize.hpp> +#include <container/ObjectsPair.h> namespace container { @@ -49,8 +50,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef ObjectsMap < > normalized_type; }; template < class KeyType, class ValueType > @@ -100,13 +99,6 @@ object::ObjectBase* ObjectsMap < KeyType, ValueType >::inc() && { namespace core { -template < > -struct normalize < ext::map < object::Object, object::Object > > { - static ext::map < object::Object, object::Object > && eval ( ext::map < object::Object, object::Object > && source ) { - return std::move ( source ); - } -}; - template < class KeyType, class ValueType > struct normalize < ext::map < KeyType, ValueType > > { static ext::map < object::Object, object::Object > eval ( ext::map < KeyType, ValueType > && source ) { @@ -120,7 +112,7 @@ struct normalize < ext::map < KeyType, ValueType > > { }; template < class KeyType, class ValueType > -struct normalize < container::ObjectsMap < KeyType, ValueType >, typename std::enable_if < ! std::is_same < container::ObjectsMap < KeyType, ValueType >, container::ObjectsMap < > >::value >::type > { +struct normalize < container::ObjectsMap < KeyType, ValueType > > { static container::ObjectsMap < > eval ( container::ObjectsMap < KeyType, ValueType > && value ) { return container::ObjectsMap < > ( normalize < ext::map < KeyType, ValueType > >::eval ( std::move ( value ) ) ); } diff --git a/alib2common/src/container/ObjectsPair.h b/alib2common/src/container/ObjectsPair.h index a33f7b3976..138bd26edb 100644 --- a/alib2common/src/container/ObjectsPair.h +++ b/alib2common/src/container/ObjectsPair.h @@ -16,7 +16,7 @@ #include "ContainerFeatures.h" #include <object/UniqueObject.h> -#include <object/AnyObject.h> +#include <object/ObjectFactory.h> #include <core/normalize.hpp> @@ -49,8 +49,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef ObjectsPair < > normalized_type; }; template < class FirstType, class SecondType > @@ -100,36 +98,22 @@ object::ObjectBase* ObjectsPair < FirstType, SecondType >::inc() && { namespace core { -template < > -struct normalize < std::pair < object::Object, object::Object > > { - static std::pair < object::Object, object::Object > && eval ( std::pair < object::Object, object::Object > && source ) { - return std::move ( source ); - } -}; - template < class FirstType, class SecondType > struct normalize < std::pair < FirstType, SecondType > > { static std::pair < object::Object, object::Object > eval ( std::pair < FirstType, SecondType > && source ) { - return std::make_pair ( object::Object ( object::AnyObject < FirstType > ( std::move ( source.first ) ) ), object::Object ( object::AnyObject < SecondType > ( std::move ( source.second ) ) ) ); - } -}; - -template < > -struct normalize < ext::pair < object::Object, object::Object > > { - static ext::pair < object::Object, object::Object > && eval ( ext::pair < object::Object, object::Object > && source ) { - return std::move ( source ); + return std::make_pair ( object::ObjectFactory::make ( std::move ( source.first ) ), object::ObjectFactory::make ( std::move ( source.second ) ) ); } }; template < class FirstType, class SecondType > struct normalize < ext::pair < FirstType, SecondType > > { static ext::pair < object::Object, object::Object > eval ( ext::pair < FirstType, SecondType > && source ) { - return ext::make_pair ( object::Object ( object::AnyObject < FirstType > ( std::move ( source.first ) ) ), object::Object ( object::AnyObject < SecondType > ( std::move ( source.second ) ) ) ); + return ext::make_pair ( object::ObjectFactory::make ( std::move ( source.first ) ), object::ObjectFactory::make ( std::move ( source.second ) ) ); } }; template < class FirstType, class SecondType > -struct normalize < container::ObjectsPair < FirstType, SecondType >, typename std::enable_if < ! std::is_same < container::ObjectsPair < FirstType, SecondType >, container::ObjectsPair < > >::value >::type > { +struct normalize < container::ObjectsPair < FirstType, SecondType > > { static container::ObjectsPair < > eval ( container::ObjectsPair < FirstType, SecondType > && value ) { return container::ObjectsPair < > ( normalize < ext::pair < FirstType, SecondType > >::eval ( std::move ( value ) ) ); } diff --git a/alib2common/src/container/ObjectsSet.h b/alib2common/src/container/ObjectsSet.h index b885f931d9..0bddd728dd 100644 --- a/alib2common/src/container/ObjectsSet.h +++ b/alib2common/src/container/ObjectsSet.h @@ -16,7 +16,7 @@ #include "ContainerFeatures.h" #include <object/UniqueObject.h> -#include <object/AnyObject.h> +#include <object/ObjectFactory.h> #include <core/normalize.hpp> @@ -49,8 +49,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef ObjectsSet < > normalized_type; }; template < class ElementType > @@ -100,27 +98,20 @@ object::ObjectBase* ObjectsSet < ElementType >::inc() && { namespace core { -template < > -struct normalize < ext::set < object::Object > > { - static ext::set < object::Object > && eval ( ext::set < object::Object > && source ) { - return std::move ( source ); - } -}; - template < class ElementType > struct normalize < ext::set < ElementType > > { static ext::set < object::Object > eval ( ext::set < ElementType > && source ) { ext::set < object::Object > res; for ( ElementType && element : ext::make_moveable_set ( source ) ) - res.insert ( object::Object ( object::AnyObject < ElementType > ( std::move ( element ) ) ) ); + res.insert ( object::ObjectFactory::make ( std::move ( element ) ) ); return res; } }; template < class ElementType > -struct normalize < container::ObjectsSet < ElementType >, typename std::enable_if < ! std::is_same < container::ObjectsSet < ElementType >, container::ObjectsSet < > >::value >::type > { +struct normalize < container::ObjectsSet < ElementType > > { static container::ObjectsSet < > eval ( container::ObjectsSet < ElementType > && value ) { return container::ObjectsSet < > ( normalize < ext::set < ElementType > >::eval ( std::move ( value ) ) ); } diff --git a/alib2common/src/container/ObjectsTree.h b/alib2common/src/container/ObjectsTree.h index a5d3fb3ffa..09a2b7d2af 100644 --- a/alib2common/src/container/ObjectsTree.h +++ b/alib2common/src/container/ObjectsTree.h @@ -16,7 +16,7 @@ #include "ContainerFeatures.h" #include <object/UniqueObject.h> -#include <object/AnyObject.h> +#include <object/ObjectFactory.h> #include <core/normalize.hpp> @@ -48,8 +48,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef ObjectsTree < > normalized_type; }; template < class ElementType > @@ -94,13 +92,6 @@ object::ObjectBase* ObjectsTree < ElementType >::inc() && { namespace core { -template < > -struct normalize < ext::tree < object::Object > > { - static ext::tree < object::Object > && eval ( ext::tree < object::Object > && source ) { - return std::move ( source ); - } -}; - template < class ElementType > struct normalize < ext::tree < ElementType > > { static ext::tree < object::Object > eval ( ext::tree < ElementType > && source ) { @@ -110,12 +101,12 @@ struct normalize < ext::tree < ElementType > > { children.push_back ( normalize < ext::tree < ElementType > >::eval ( std::move ( child ) ) ); } - return ext::tree < object::Object > ( object::Object ( object::AnyObject < ElementType > ( std::move ( source.getData ( ) ) ) ), std::move ( children ) ); + return ext::tree < object::Object > ( object::ObjectFactory::make ( std::move ( source.getData ( ) ) ), std::move ( children ) ); } }; template < class ElementType > -struct normalize < container::ObjectsTree < ElementType >, typename std::enable_if < ! std::is_same < container::ObjectsTree < ElementType >, container::ObjectsTree < > >::value >::type > { +struct normalize < container::ObjectsTree < ElementType > > { static container::ObjectsTree < > eval ( container::ObjectsTree < ElementType > && value ) { return container::ObjectsTree < > ( normalize < ext::tree < ElementType > >::eval ( std::move ( value ) ) ); } diff --git a/alib2common/src/container/ObjectsTrie.h b/alib2common/src/container/ObjectsTrie.h index 0242a19212..6c0c81d57e 100644 --- a/alib2common/src/container/ObjectsTrie.h +++ b/alib2common/src/container/ObjectsTrie.h @@ -16,7 +16,7 @@ #include "ContainerFeatures.h" #include <object/UniqueObject.h> -#include <object/AnyObject.h> +#include <object/ObjectFactory.h> #include <core/normalize.hpp> @@ -48,8 +48,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef ObjectsTrie < > normalized_type; }; template < class KeyType, class ValueType > @@ -94,28 +92,21 @@ object::ObjectBase* ObjectsTrie < KeyType, ValueType >::inc() && { namespace core { -template < > -struct normalize < ext::trie < object::Object, object::Object > > { - static ext::trie < object::Object, object::Object > && eval ( ext::trie < object::Object, object::Object > && source ) { - return std::move ( source ); - } -}; - template < class KeyType, class ValueType > struct normalize < ext::trie < KeyType, ValueType > > { static ext::trie < object::Object, object::Object > eval ( ext::trie < KeyType, ValueType > && source ) { ext::map < object::Object, ext::trie < object::Object, object::Object > > children; for ( std::pair < KeyType, ext::trie < KeyType, ValueType > > && child : ext::make_moveable_map ( source.getChildren ( ) ) ) { - children.insert ( std::make_pair ( object::Object ( object::AnyObject < KeyType > ( std::move ( child.first ) ) ), normalizeRaw ( std::move ( child.second ) ) ) ); + children.insert ( std::make_pair ( object::ObjectFactory::make ( std::move ( child.first ) ), normalize < ext::trie < KeyType, ValueType > >::eval ( std::move ( child.second ) ) ) ); } - return ext::trie < object::Object, object::Object > ( object::Object ( object::AnyObject < ValueType > ( std::move ( source.getData ( ) ) ) ), std::move ( children ) ); + return ext::trie < object::Object, object::Object > ( object::ObjectFactory::make ( std::move ( source.getData ( ) ) ), std::move ( children ) ); } }; template < class KeyType, class ValueType > -struct normalize < container::ObjectsTrie < KeyType, ValueType >, typename std::enable_if < ! std::is_same < container::ObjectsTrie < KeyType, ValueType >, container::ObjectsTrie < > >::value >::type > { +struct normalize < container::ObjectsTrie < KeyType, ValueType > > { static container::ObjectsTrie < > eval ( container::ObjectsTrie < KeyType, ValueType > && value ) { return container::ObjectsTrie < > ( normalize < ext::trie < KeyType, ValueType > >::eval ( std::move ( value ) ) ); } diff --git a/alib2common/src/container/ObjectsVector.h b/alib2common/src/container/ObjectsVector.h index 2ca9f779d7..dc96857165 100644 --- a/alib2common/src/container/ObjectsVector.h +++ b/alib2common/src/container/ObjectsVector.h @@ -16,7 +16,7 @@ #include "ContainerFeatures.h" #include <object/UniqueObject.h> -#include <object/AnyObject.h> +#include <object/ObjectFactory.h> #include <core/normalize.hpp> @@ -49,8 +49,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef ObjectsVector < > normalized_type; }; template < class ElementType > @@ -99,27 +97,20 @@ object::ObjectBase* ObjectsVector < ElementType >::inc() && { namespace core { -template < > -struct normalize < ext::vector < object::Object > > { - static ext::vector < object::Object > && eval ( ext::vector < object::Object > && source ) { - return std::move ( source ); - } -}; - template < class ElementType > struct normalize < ext::vector < ElementType > > { static ext::vector < object::Object > eval ( ext::vector < ElementType > && source ) { ext::vector < object::Object > res; for ( ElementType & element : source ) - res.push_back ( object::Object ( object::AnyObject < ElementType > ( std::move ( element ) ) ) ); + res.push_back ( object::ObjectFactory::make ( std::move ( element ) ) ); return res; } }; template < class ElementType > -struct normalize < container::ObjectsVector < ElementType >, typename std::enable_if < ! std::is_same < container::ObjectsVector < ElementType >, container::ObjectsVector < > >::value >::type > { +struct normalize < container::ObjectsVector < ElementType > > { static container::ObjectsVector < > eval ( container::ObjectsVector < ElementType > && value ) { return container::ObjectsVector < > ( normalize < ext::vector < ElementType > >::eval ( std::move ( value ) ) ); } diff --git a/alib2common/test-src/container/ContainerTest.cpp b/alib2common/test-src/container/ContainerTest.cpp index d51f6ee45d..f06c5aee22 100644 --- a/alib2common/test-src/container/ContainerTest.cpp +++ b/alib2common/test-src/container/ContainerTest.cpp @@ -3,6 +3,10 @@ #include "object/Object.h" #include "container/ObjectsSet.h" #include "container/ObjectsDeque.h" +#include "container/ObjectsVector.h" +#include "container/ObjectsMap.h" +#include "container/ObjectsTree.h" +#include "container/ObjectsTrie.h" #include <alib/type_traits> @@ -27,4 +31,20 @@ void ContainerTest::testNormalize ( ) { container::ObjectsDeque < int > Dint; container::ObjectsDeque < object::Object > Dnor = core::normalize < container::ObjectsDeque < int > >::eval ( std::move ( Dint ) ); container::ObjectsDeque < object::Object > Dnor2 = core::normalize < container::ObjectsDeque < object::Object > >::eval ( std::move ( Dnor ) ); + + container::ObjectsVector < int > Vint; + container::ObjectsVector < object::Object > Vnor = core::normalize < container::ObjectsVector < int > >::eval ( std::move ( Vint ) ); + container::ObjectsVector < object::Object > Vnor2 = core::normalize < container::ObjectsVector < object::Object > >::eval ( std::move ( Vnor ) ); + + container::ObjectsMap < int, int > Mintint; + container::ObjectsMap < object::Object, object::Object > Mnor = core::normalize < container::ObjectsMap < int, int > >::eval ( std::move ( Mintint ) ); + container::ObjectsMap < object::Object, object::Object > Mnor2 = core::normalize < container::ObjectsMap < object::Object, object::Object > >::eval ( std::move ( Mnor ) ); + + container::ObjectsTree < int > Tint ( 1 ); + container::ObjectsTree < object::Object > Tnor = core::normalize < container::ObjectsTree < int > >::eval ( std::move ( Tint ) ); + container::ObjectsTree < object::Object > Tnor2 = core::normalize < container::ObjectsTree < object::Object > >::eval ( std::move ( Tnor ) ); + + container::ObjectsTrie < int, int > Rintint ( 1 ); + container::ObjectsTrie < object::Object, object::Object > Rnor = core::normalize < container::ObjectsTrie < int, int > >::eval ( std::move ( Rintint ) ); + container::ObjectsTrie < object::Object, object::Object > Rnor2 = core::normalize < container::ObjectsTrie < object::Object, object::Object > >::eval ( std::move ( Rnor ) ); } diff --git a/alib2data/src/alphabet/BarSymbol.h b/alib2data/src/alphabet/BarSymbol.h index 0c8de693ae..1c76552091 100644 --- a/alib2data/src/alphabet/BarSymbol.h +++ b/alib2data/src/alphabet/BarSymbol.h @@ -47,8 +47,6 @@ public: static inline typename std::enable_if < ! std::is_integral < Base >::value, Base >::type instance ( ); virtual SymbolBase * inc ( ) &&; - - typedef BarSymbol normalized_type; }; template < typename Base > diff --git a/alib2data/src/alphabet/BlankSymbol.h b/alib2data/src/alphabet/BlankSymbol.h index b60dbb8477..8872d0ceb0 100644 --- a/alib2data/src/alphabet/BlankSymbol.h +++ b/alib2data/src/alphabet/BlankSymbol.h @@ -47,8 +47,6 @@ public: static inline typename std::enable_if < ! std::is_integral < Base >::value, Base >::type instance ( ); virtual SymbolBase * inc ( ) &&; - - typedef BlankSymbol normalized_type; }; template < typename Base > diff --git a/alib2data/src/alphabet/BottomOfTheStackSymbol.h b/alib2data/src/alphabet/BottomOfTheStackSymbol.h index 18ed29a634..17f79e95d5 100644 --- a/alib2data/src/alphabet/BottomOfTheStackSymbol.h +++ b/alib2data/src/alphabet/BottomOfTheStackSymbol.h @@ -47,8 +47,6 @@ public: static inline typename std::enable_if < ! std::is_integral < Base >::value, Base >::type instance ( ); virtual SymbolBase * inc ( ) &&; - - typedef BottomOfTheStackSymbol normalized_type; }; template < typename Base > diff --git a/alib2data/src/alphabet/EndSymbol.h b/alib2data/src/alphabet/EndSymbol.h index 217abbe51b..88ec81d296 100644 --- a/alib2data/src/alphabet/EndSymbol.h +++ b/alib2data/src/alphabet/EndSymbol.h @@ -47,8 +47,6 @@ public: static inline typename std::enable_if < ! std::is_integral < Base >::value, Base >::type instance ( ); virtual SymbolBase * inc ( ) &&; - - typedef EndSymbol normalized_type; }; template < typename Base > diff --git a/alib2data/src/alphabet/InitialSymbol.h b/alib2data/src/alphabet/InitialSymbol.h index a31721e961..1e4bf6665e 100644 --- a/alib2data/src/alphabet/InitialSymbol.h +++ b/alib2data/src/alphabet/InitialSymbol.h @@ -48,8 +48,6 @@ public: static inline typename std::enable_if < ! std::is_integral < Base >::value, Base >::type instance ( ); virtual SymbolBase * inc ( ) &&; - - typedef InitialSymbol normalized_type; }; template < typename Base > diff --git a/alib2data/src/alphabet/LabeledSymbol.h b/alib2data/src/alphabet/LabeledSymbol.h index f9f8ebf8b6..e4f9593545 100644 --- a/alib2data/src/alphabet/LabeledSymbol.h +++ b/alib2data/src/alphabet/LabeledSymbol.h @@ -54,8 +54,6 @@ public: virtual explicit operator std::string ( ) const; virtual SymbolBase * inc ( ) &&; - - typedef LabeledSymbol normalized_type; }; } /* namespace alphabet */ diff --git a/alib2data/src/alphabet/NonlinearVariableSymbol.h b/alib2data/src/alphabet/NonlinearVariableSymbol.h index ddaf8179ca..e454590ab4 100644 --- a/alib2data/src/alphabet/NonlinearVariableSymbol.h +++ b/alib2data/src/alphabet/NonlinearVariableSymbol.h @@ -54,8 +54,6 @@ public: virtual explicit operator std::string ( ) const; virtual SymbolBase * inc ( ) &&; - - typedef NonlinearVariableSymbol < > normalized_type; }; template < class SymbolType > @@ -109,7 +107,7 @@ SymbolBase * NonlinearVariableSymbol < SymbolType >::inc ( ) && { namespace core { template < class SymbolType > -struct normalize < alphabet::NonlinearVariableSymbol < SymbolType >, typename std::enable_if < ! std::is_same < alphabet::NonlinearVariableSymbol < SymbolType >, alphabet::NonlinearVariableSymbol < > >::value >::type > { +struct normalize < alphabet::NonlinearVariableSymbol < SymbolType > > { static alphabet::NonlinearVariableSymbol < > eval ( alphabet::NonlinearVariableSymbol < SymbolType > && value ) { return alphabet::NonlinearVariableSymbol < > ( alphabet::SymbolNormalize::normalizeSymbol ( std::move ( value ).getSymbol ( ) ) ); } diff --git a/alib2data/src/alphabet/RankedSymbol.h b/alib2data/src/alphabet/RankedSymbol.h index 3f9ad024ea..59eddd8af3 100644 --- a/alib2data/src/alphabet/RankedSymbol.h +++ b/alib2data/src/alphabet/RankedSymbol.h @@ -52,8 +52,6 @@ public: using SymbolBase::operator >=; virtual SymbolBase * inc ( ) &&; - - typedef RankedSymbol < > normalized_type; }; template < class SymbolType, class RankType > @@ -92,21 +90,14 @@ SymbolBase* RankedSymbol < SymbolType, RankType >::inc() && { namespace core { template < class SymbolType, class RankType > -struct normalize < common::ranked_symbol < SymbolType, RankType >, typename std::enable_if < std::is_same < common::ranked_symbol < SymbolType, RankType >, common::ranked_symbol < > >::value >::type > { - static common::ranked_symbol < > && eval ( common::ranked_symbol < SymbolType, RankType > && value ) { - return std::move ( value ); - } -}; - -template < class SymbolType, class RankType > -struct normalize < common::ranked_symbol < SymbolType, RankType >, typename std::enable_if < ! std::is_same < common::ranked_symbol < SymbolType, RankType >, common::ranked_symbol < > >::value >::type > { +struct normalize < common::ranked_symbol < SymbolType, RankType > > { static common::ranked_symbol < > eval ( common::ranked_symbol < SymbolType, RankType > && value ) { return alphabet::SymbolNormalize::normalizeRankedSymbol ( std::move ( value ) ); } }; template < class SymbolType, class RankType > -struct normalize < alphabet::RankedSymbol < SymbolType, RankType >, typename std::enable_if < ! std::is_same < alphabet::RankedSymbol < SymbolType, RankType >, alphabet::RankedSymbol < > >::value >::type > { +struct normalize < alphabet::RankedSymbol < SymbolType, RankType > > { static alphabet::RankedSymbol < > eval ( alphabet::RankedSymbol < SymbolType, RankType > && value ) { return alphabet::RankedSymbol < > ( normalize < common::ranked_symbol < SymbolType, RankType > >::eval ( std::move ( value ) ) ); } diff --git a/alib2data/src/alphabet/StartSymbol.h b/alib2data/src/alphabet/StartSymbol.h index aea90e3d75..8b8546f313 100644 --- a/alib2data/src/alphabet/StartSymbol.h +++ b/alib2data/src/alphabet/StartSymbol.h @@ -47,8 +47,6 @@ public: static inline typename std::enable_if < ! std::is_integral < Base >::value, Base >::type instance ( ); virtual SymbolBase * inc ( ) &&; - - typedef StartSymbol normalized_type; }; template < typename Base > diff --git a/alib2data/src/alphabet/SubtreeWildcardSymbol.h b/alib2data/src/alphabet/SubtreeWildcardSymbol.h index 863ee307a6..ecd47bd2e1 100644 --- a/alib2data/src/alphabet/SubtreeWildcardSymbol.h +++ b/alib2data/src/alphabet/SubtreeWildcardSymbol.h @@ -47,8 +47,6 @@ public: static inline typename std::enable_if < ! std::is_integral < Base >::value, Base >::type instance ( ); virtual SymbolBase * inc ( ) &&; - - typedef SubtreeWildcardSymbol normalized_type; }; template < typename Base > diff --git a/alib2data/src/alphabet/UniqueSymbol.h b/alib2data/src/alphabet/UniqueSymbol.h index f11e48bc57..50a9a00b2b 100644 --- a/alib2data/src/alphabet/UniqueSymbol.h +++ b/alib2data/src/alphabet/UniqueSymbol.h @@ -56,8 +56,6 @@ public: virtual explicit operator std::string ( ) const; virtual SymbolBase * inc ( ) &&; - - typedef UniqueSymbol normalized_type; }; } /* namespace alphabet */ diff --git a/alib2data/src/alphabet/VariablesBarSymbol.h b/alib2data/src/alphabet/VariablesBarSymbol.h index 0a7e28065e..8e8cc58c15 100644 --- a/alib2data/src/alphabet/VariablesBarSymbol.h +++ b/alib2data/src/alphabet/VariablesBarSymbol.h @@ -47,8 +47,6 @@ public: static inline typename std::enable_if < ! std::is_integral < Base >::value, Base >::type instance ( ); virtual SymbolBase * inc ( ) &&; - - typedef VariablesBarSymbol normalized_type; }; template < typename Base > diff --git a/alib2data/src/automaton/FSM/CompactNFA.h b/alib2data/src/automaton/FSM/CompactNFA.h index 5c9e96b7d3..4af5b115c3 100644 --- a/alib2data/src/automaton/FSM/CompactNFA.h +++ b/alib2data/src/automaton/FSM/CompactNFA.h @@ -472,11 +472,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef CompactNFA < > normalized_type; }; } /* namespace automaton */ @@ -912,7 +907,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType, class StateType > -struct normalize < automaton::CompactNFA < SymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::CompactNFA < SymbolType, StateType >, automaton::CompactNFA < > >::value >::type > { +struct normalize < automaton::CompactNFA < SymbolType, StateType > > { static automaton::CompactNFA < > eval ( automaton::CompactNFA < SymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultStateType > states = automaton::AutomatonNormalize::normalizeStates ( std::move ( value ).getStates ( ) ); diff --git a/alib2data/src/automaton/FSM/DFA.h b/alib2data/src/automaton/FSM/DFA.h index f3faccea40..8d36ad3742 100644 --- a/alib2data/src/automaton/FSM/DFA.h +++ b/alib2data/src/automaton/FSM/DFA.h @@ -438,11 +438,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef DFA < > normalized_type; }; template<class SymbolType, class StateType > @@ -845,7 +840,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType, class StateType > -struct normalize < automaton::DFA < SymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::DFA < SymbolType, StateType >, automaton::DFA < > >::value >::type > { +struct normalize < automaton::DFA < SymbolType, StateType > > { static automaton::DFA < > eval ( automaton::DFA < SymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultStateType > states = automaton::AutomatonNormalize::normalizeStates ( std::move ( value ).getStates ( ) ); diff --git a/alib2data/src/automaton/FSM/EpsilonNFA.h b/alib2data/src/automaton/FSM/EpsilonNFA.h index b726c90fd4..74a60ce6c3 100644 --- a/alib2data/src/automaton/FSM/EpsilonNFA.h +++ b/alib2data/src/automaton/FSM/EpsilonNFA.h @@ -608,11 +608,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef EpsilonNFA < > normalized_type; }; } /* namespace automaton */ @@ -1171,7 +1166,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template<class SymbolType, class EpsilonType, class StateType > -struct normalize < automaton::EpsilonNFA < SymbolType, EpsilonType, StateType >, typename std::enable_if < ! std::is_same < automaton::EpsilonNFA < SymbolType, EpsilonType, StateType >, automaton::EpsilonNFA < > >::value >::type > { +struct normalize < automaton::EpsilonNFA < SymbolType, EpsilonType, StateType > > { static automaton::EpsilonNFA < > eval ( automaton::EpsilonNFA < SymbolType, EpsilonType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultStateType > states = automaton::AutomatonNormalize::normalizeStates ( std::move ( value ).getStates ( ) ); diff --git a/alib2data/src/automaton/FSM/ExtendedNFA.h b/alib2data/src/automaton/FSM/ExtendedNFA.h index e690f7a97b..3b6d9aec56 100644 --- a/alib2data/src/automaton/FSM/ExtendedNFA.h +++ b/alib2data/src/automaton/FSM/ExtendedNFA.h @@ -483,11 +483,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef ExtendedNFA < > normalized_type; }; } /* namespace automaton */ @@ -937,7 +932,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType, class StateType > -struct normalize < automaton::ExtendedNFA < SymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::ExtendedNFA < SymbolType, StateType >, automaton::ExtendedNFA < > >::value >::type > { +struct normalize < automaton::ExtendedNFA < SymbolType, StateType > > { static automaton::ExtendedNFA < > eval ( automaton::ExtendedNFA < SymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultStateType > states = automaton::AutomatonNormalize::normalizeStates ( std::move ( value ).getStates ( ) ); diff --git a/alib2data/src/automaton/FSM/MultiInitialStateNFA.h b/alib2data/src/automaton/FSM/MultiInitialStateNFA.h index 33cf090d4b..b65397f975 100644 --- a/alib2data/src/automaton/FSM/MultiInitialStateNFA.h +++ b/alib2data/src/automaton/FSM/MultiInitialStateNFA.h @@ -500,11 +500,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef MultiInitialStateNFA < > normalized_type; }; } /* namespace automaton */ @@ -938,7 +933,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType, class StateType > -struct normalize < automaton::MultiInitialStateNFA < SymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::MultiInitialStateNFA < SymbolType, StateType >, automaton::MultiInitialStateNFA < > >::value >::type > { +struct normalize < automaton::MultiInitialStateNFA < SymbolType, StateType > > { static automaton::MultiInitialStateNFA < > eval ( automaton::MultiInitialStateNFA < SymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultStateType > states = automaton::AutomatonNormalize::normalizeStates ( std::move ( value ).getStates ( ) ); diff --git a/alib2data/src/automaton/FSM/NFA.h b/alib2data/src/automaton/FSM/NFA.h index c6f7f3107a..3124a0aac1 100644 --- a/alib2data/src/automaton/FSM/NFA.h +++ b/alib2data/src/automaton/FSM/NFA.h @@ -470,11 +470,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef NFA < > normalized_type; }; } /* namespace automaton */ @@ -888,7 +883,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType, class StateType > -struct normalize < automaton::NFA < SymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::NFA < SymbolType, StateType >, automaton::NFA < > >::value >::type > { +struct normalize < automaton::NFA < SymbolType, StateType > > { static automaton::NFA < > eval ( automaton::NFA < SymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultStateType > states = automaton::AutomatonNormalize::normalizeStates ( std::move ( value ).getStates ( ) ); diff --git a/alib2data/src/automaton/PDA/DPDA.h b/alib2data/src/automaton/PDA/DPDA.h index f9f8d002f3..3a7cd9fe80 100644 --- a/alib2data/src/automaton/PDA/DPDA.h +++ b/alib2data/src/automaton/PDA/DPDA.h @@ -600,11 +600,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef DPDA < > normalized_type; }; template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > @@ -1163,7 +1158,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > -struct normalize < automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, automaton::DPDA < > >::value >::type > { +struct normalize < automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > > { static automaton::DPDA < > eval ( automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultSymbolType > pushdownAlphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getPushdownStoreAlphabet ( ) ); diff --git a/alib2data/src/automaton/PDA/InputDrivenDPDA.h b/alib2data/src/automaton/PDA/InputDrivenDPDA.h index 41e0beb8e4..1d6075278a 100644 --- a/alib2data/src/automaton/PDA/InputDrivenDPDA.h +++ b/alib2data/src/automaton/PDA/InputDrivenDPDA.h @@ -582,11 +582,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef InputDrivenDPDA < > normalized_type; }; template < class InputSymbolType, class PushdownStoreSymbolType, class StateType > @@ -1125,7 +1120,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class InputSymbolType, class PushdownStoreSymbolType, class StateType > -struct normalize < automaton::InputDrivenDPDA < InputSymbolType, PushdownStoreSymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::InputDrivenDPDA < InputSymbolType, PushdownStoreSymbolType, StateType >, automaton::InputDrivenDPDA < > >::value >::type > { +struct normalize < automaton::InputDrivenDPDA < InputSymbolType, PushdownStoreSymbolType, StateType > > { static automaton::InputDrivenDPDA < > eval ( automaton::InputDrivenDPDA < InputSymbolType, PushdownStoreSymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultSymbolType > pushdownAlphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getPushdownStoreAlphabet ( ) ); diff --git a/alib2data/src/automaton/PDA/InputDrivenNPDA.h b/alib2data/src/automaton/PDA/InputDrivenNPDA.h index 8d00e94a80..8ffe633afe 100644 --- a/alib2data/src/automaton/PDA/InputDrivenNPDA.h +++ b/alib2data/src/automaton/PDA/InputDrivenNPDA.h @@ -607,11 +607,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef InputDrivenNPDA < > normalized_type; }; template < class InputSymbolType, class PushdownStoreSymbolType, class StateType > @@ -1166,7 +1161,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class InputSymbolType, class PushdownStoreSymbolType, class StateType > -struct normalize < automaton::InputDrivenNPDA < InputSymbolType, PushdownStoreSymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::InputDrivenNPDA < InputSymbolType, PushdownStoreSymbolType, StateType >, automaton::InputDrivenNPDA < > >::value >::type > { +struct normalize < automaton::InputDrivenNPDA < InputSymbolType, PushdownStoreSymbolType, StateType > > { static automaton::InputDrivenNPDA < > eval ( automaton::InputDrivenNPDA < InputSymbolType, PushdownStoreSymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultSymbolType > pushdownAlphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getPushdownStoreAlphabet ( ) ); diff --git a/alib2data/src/automaton/PDA/NPDA.h b/alib2data/src/automaton/PDA/NPDA.h index 9d5526a930..d66240510b 100644 --- a/alib2data/src/automaton/PDA/NPDA.h +++ b/alib2data/src/automaton/PDA/NPDA.h @@ -616,11 +616,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef NPDA < > normalized_type; }; template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > @@ -1138,7 +1133,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > -struct normalize < automaton::NPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::NPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, automaton::NPDA < > >::value >::type > { +struct normalize < automaton::NPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > > { static automaton::NPDA < > eval ( automaton::NPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultSymbolType > pushdownAlphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getPushdownStoreAlphabet ( ) ); diff --git a/alib2data/src/automaton/PDA/NPDTA.h b/alib2data/src/automaton/PDA/NPDTA.h index f426e4500b..25d9d954fb 100644 --- a/alib2data/src/automaton/PDA/NPDTA.h +++ b/alib2data/src/automaton/PDA/NPDTA.h @@ -693,11 +693,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef NPDTA < > normalized_type; }; template < class InputSymbolType, class OutputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > @@ -1313,7 +1308,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class InputSymbolType, class OutputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > -struct normalize < automaton::NPDTA < InputSymbolType, OutputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::NPDTA < InputSymbolType, OutputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, automaton::NPDTA < > >::value >::type > { +struct normalize < automaton::NPDTA < InputSymbolType, OutputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > > { static automaton::NPDTA < > eval ( automaton::NPDTA < InputSymbolType, OutputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultSymbolType > outputAlphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getOutputAlphabet ( ) ); diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h index 4b81eac714..96db4d6cba 100644 --- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h +++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.h @@ -819,11 +819,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef RealTimeHeightDeterministicDPDA < > normalized_type; }; template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > @@ -1585,7 +1580,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > -struct normalize < automaton::RealTimeHeightDeterministicDPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::RealTimeHeightDeterministicDPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, automaton::RealTimeHeightDeterministicDPDA < > >::value >::type > { +struct normalize < automaton::RealTimeHeightDeterministicDPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > > { static automaton::RealTimeHeightDeterministicDPDA < > eval ( automaton::RealTimeHeightDeterministicDPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultSymbolType > pushdownAlphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getPushdownStoreAlphabet ( ) ); diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h index b5bd6acd02..8ca9dab84d 100644 --- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h +++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.h @@ -939,11 +939,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef RealTimeHeightDeterministicNPDA < > normalized_type; }; template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > @@ -1715,7 +1710,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > -struct normalize < automaton::RealTimeHeightDeterministicNPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::RealTimeHeightDeterministicNPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, automaton::RealTimeHeightDeterministicNPDA < > >::value >::type > { +struct normalize < automaton::RealTimeHeightDeterministicNPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > > { static automaton::RealTimeHeightDeterministicNPDA < > eval ( automaton::RealTimeHeightDeterministicNPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultSymbolType > pushdownAlphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getPushdownStoreAlphabet ( ) ); diff --git a/alib2data/src/automaton/PDA/SinglePopDPDA.h b/alib2data/src/automaton/PDA/SinglePopDPDA.h index 4846de42de..a132f4e616 100644 --- a/alib2data/src/automaton/PDA/SinglePopDPDA.h +++ b/alib2data/src/automaton/PDA/SinglePopDPDA.h @@ -582,11 +582,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef SinglePopDPDA < > normalized_type; }; template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > @@ -1087,7 +1082,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > -struct normalize < automaton::SinglePopDPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::SinglePopDPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, automaton::SinglePopDPDA < > >::value >::type > { +struct normalize < automaton::SinglePopDPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > > { static automaton::SinglePopDPDA < > eval ( automaton::SinglePopDPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultSymbolType > pushdownAlphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getPushdownStoreAlphabet ( ) ); diff --git a/alib2data/src/automaton/PDA/SinglePopNPDA.h b/alib2data/src/automaton/PDA/SinglePopNPDA.h index bb783d9863..41a213f6b2 100644 --- a/alib2data/src/automaton/PDA/SinglePopNPDA.h +++ b/alib2data/src/automaton/PDA/SinglePopNPDA.h @@ -617,11 +617,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef SinglePopNPDA < > normalized_type; }; template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > @@ -1142,7 +1137,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType > -struct normalize < automaton::SinglePopNPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::SinglePopNPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, automaton::SinglePopNPDA < > >::value >::type > { +struct normalize < automaton::SinglePopNPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > > { static automaton::SinglePopNPDA < > eval ( automaton::SinglePopNPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultSymbolType > pushdownAlphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getPushdownStoreAlphabet ( ) ); diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h index 3506764f01..35cbaf99e2 100644 --- a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h +++ b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.h @@ -759,11 +759,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef VisiblyPushdownDPDA < > normalized_type; }; template < class InputSymbolType, class PushdownStoreSymbolType, class StateType > @@ -1510,7 +1505,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class InputSymbolType, class PushdownStoreSymbolType, class StateType > -struct normalize < automaton::VisiblyPushdownDPDA < InputSymbolType, PushdownStoreSymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::VisiblyPushdownDPDA < InputSymbolType, PushdownStoreSymbolType, StateType >, automaton::VisiblyPushdownDPDA < > >::value >::type > { +struct normalize < automaton::VisiblyPushdownDPDA < InputSymbolType, PushdownStoreSymbolType, StateType > > { static automaton::VisiblyPushdownDPDA < > eval ( automaton::VisiblyPushdownDPDA < InputSymbolType, PushdownStoreSymbolType, StateType > && value ) { ext::set < DefaultSymbolType > call_alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getCallInputAlphabet ( ) ); ext::set < DefaultSymbolType > return_alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getReturnInputAlphabet ( ) ); diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h index 5b42fe9fa6..b0ba6e5dfc 100644 --- a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h +++ b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.h @@ -811,11 +811,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef VisiblyPushdownNPDA < > normalized_type; }; template < class InputSymbolType, class PushdownStoreSymbolType, class StateType > @@ -1581,7 +1576,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class InputSymbolType, class PushdownStoreSymbolType, class StateType > -struct normalize < automaton::VisiblyPushdownNPDA < InputSymbolType, PushdownStoreSymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::VisiblyPushdownNPDA < InputSymbolType, PushdownStoreSymbolType, StateType >, automaton::VisiblyPushdownNPDA < > >::value >::type > { +struct normalize < automaton::VisiblyPushdownNPDA < InputSymbolType, PushdownStoreSymbolType, StateType > > { static automaton::VisiblyPushdownNPDA < > eval ( automaton::VisiblyPushdownNPDA < InputSymbolType, PushdownStoreSymbolType, StateType > && value ) { ext::set < DefaultSymbolType > call_alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getCallInputAlphabet ( ) ); ext::set < DefaultSymbolType > return_alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getReturnInputAlphabet ( ) ); diff --git a/alib2data/src/automaton/TA/DFTA.h b/alib2data/src/automaton/TA/DFTA.h index b0fc842a48..bbeea2d6d2 100644 --- a/alib2data/src/automaton/TA/DFTA.h +++ b/alib2data/src/automaton/TA/DFTA.h @@ -403,11 +403,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef DFTA < > normalized_type; }; } /* namespace automaton */ @@ -716,7 +711,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType, class RankType, class StateType > -struct normalize < automaton::DFTA < SymbolType, RankType, StateType >, typename std::enable_if < ! std::is_same < automaton::DFTA < SymbolType, RankType, StateType >, automaton::DFTA < > >::value >::type > { +struct normalize < automaton::DFTA < SymbolType, RankType, StateType > > { static automaton::DFTA < > eval ( automaton::DFTA < SymbolType, RankType, StateType > && value ) { ext::set < common::ranked_symbol < > > alphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultStateType > states = automaton::AutomatonNormalize::normalizeStates ( std::move ( value ).getStates ( ) ); diff --git a/alib2data/src/automaton/TA/NFTA.h b/alib2data/src/automaton/TA/NFTA.h index 6f80c89718..95f210d6cd 100644 --- a/alib2data/src/automaton/TA/NFTA.h +++ b/alib2data/src/automaton/TA/NFTA.h @@ -428,11 +428,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef NFTA < > normalized_type; }; } /* namespace automaton */ @@ -775,7 +770,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType, class RankType, class StateType > -struct normalize < automaton::NFTA < SymbolType, RankType, StateType >, typename std::enable_if < ! std::is_same < automaton::NFTA < SymbolType, RankType, StateType >, automaton::NFTA < > >::value >::type > { +struct normalize < automaton::NFTA < SymbolType, RankType, StateType > > { static automaton::NFTA < > eval ( automaton::NFTA < SymbolType, RankType, StateType > && value ) { ext::set < common::ranked_symbol < > > alphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getInputAlphabet ( ) ); ext::set < DefaultStateType > states = automaton::AutomatonNormalize::normalizeStates ( std::move ( value ).getStates ( ) ); diff --git a/alib2data/src/automaton/TM/OneTapeDTM.h b/alib2data/src/automaton/TM/OneTapeDTM.h index cfe73173a0..0d08a931e7 100644 --- a/alib2data/src/automaton/TM/OneTapeDTM.h +++ b/alib2data/src/automaton/TM/OneTapeDTM.h @@ -506,11 +506,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized automaton. - */ - typedef OneTapeDTM < > normalized_type; }; template<class SymbolType, class StateType > @@ -969,7 +964,7 @@ public: * \returns new instance of the automaton with default template parameters or unmodified instance if the template parameters were already the default ones */ template<class SymbolType, class StateType > -struct normalize < automaton::OneTapeDTM < SymbolType, StateType >, typename std::enable_if < ! std::is_same < automaton::OneTapeDTM < SymbolType, StateType >, automaton::OneTapeDTM < > >::value >::type > { +struct normalize < automaton::OneTapeDTM < SymbolType, StateType > > { static automaton::OneTapeDTM < > eval ( automaton::OneTapeDTM < SymbolType, StateType > && value ) { ext::set < DefaultSymbolType > tapeAlphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTapeAlphabet ( ) ); ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getInputAlphabet ( ) ); diff --git a/alib2data/src/grammar/ContextFree/CFG.h b/alib2data/src/grammar/ContextFree/CFG.h index 82fa06447b..ac1facbaea 100644 --- a/alib2data/src/grammar/ContextFree/CFG.h +++ b/alib2data/src/grammar/ContextFree/CFG.h @@ -358,11 +358,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef CFG < > normalized_type; }; } /* namespace grammar */ @@ -692,7 +687,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::CFG < SymbolType >, typename std::enable_if < ! std::is_same < grammar::CFG < SymbolType >, grammar::CFG < > >::value >::type > { +struct normalize < grammar::CFG < SymbolType > > { static grammar::CFG < > eval ( grammar::CFG < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/grammar/ContextFree/CNF.h b/alib2data/src/grammar/ContextFree/CNF.h index 35f36e746a..1a3615fbf8 100644 --- a/alib2data/src/grammar/ContextFree/CNF.h +++ b/alib2data/src/grammar/ContextFree/CNF.h @@ -415,11 +415,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef CNF < > normalized_type; }; template < class SymbolType > @@ -836,7 +831,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::CNF < SymbolType >, typename std::enable_if < ! std::is_same < grammar::CNF < SymbolType >, grammar::CNF < > >::value >::type > { +struct normalize < grammar::CNF < SymbolType > > { static grammar::CNF < > eval ( grammar::CNF < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h index 53a5d45e71..c84748d463 100644 --- a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h +++ b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h @@ -370,11 +370,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef EpsilonFreeCFG < > normalized_type; }; template < class SymbolType > @@ -731,7 +726,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::EpsilonFreeCFG < SymbolType >, typename std::enable_if < ! std::is_same < grammar::EpsilonFreeCFG < SymbolType >, grammar::EpsilonFreeCFG < > >::value >::type > { +struct normalize < grammar::EpsilonFreeCFG < SymbolType > > { static grammar::EpsilonFreeCFG < > eval ( grammar::EpsilonFreeCFG < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/grammar/ContextFree/GNF.h b/alib2data/src/grammar/ContextFree/GNF.h index 7d23c8ef9c..bde1d647b1 100644 --- a/alib2data/src/grammar/ContextFree/GNF.h +++ b/alib2data/src/grammar/ContextFree/GNF.h @@ -370,11 +370,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef GNF < > normalized_type; }; template < class SymbolType > @@ -740,7 +735,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::GNF < SymbolType >, typename std::enable_if < ! std::is_same < grammar::GNF < SymbolType >, grammar::GNF < > >::value >::type > { +struct normalize < grammar::GNF < SymbolType > > { static grammar::GNF < > eval ( grammar::GNF < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/grammar/ContextFree/LG.h b/alib2data/src/grammar/ContextFree/LG.h index 23a671e5d9..0c13d64711 100644 --- a/alib2data/src/grammar/ContextFree/LG.h +++ b/alib2data/src/grammar/ContextFree/LG.h @@ -397,11 +397,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef LG < > normalized_type; }; template < class SymbolType > @@ -831,7 +826,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::LG < SymbolType >, typename std::enable_if < ! std::is_same < grammar::LG < SymbolType >, grammar::LG < > >::value >::type > { +struct normalize < grammar::LG < SymbolType > > { static grammar::LG < > eval ( grammar::LG < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/grammar/ContextSensitive/CSG.h b/alib2data/src/grammar/ContextSensitive/CSG.h index e64c136b7a..3c62718d7f 100644 --- a/alib2data/src/grammar/ContextSensitive/CSG.h +++ b/alib2data/src/grammar/ContextSensitive/CSG.h @@ -352,11 +352,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef CSG < > normalized_type; }; template < class SymbolType > @@ -717,7 +712,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::CSG < SymbolType >, typename std::enable_if < ! std::is_same < grammar::CSG < SymbolType >, grammar::CSG < > >::value >::type > { +struct normalize < grammar::CSG < SymbolType > > { static grammar::CSG < > eval ( grammar::CSG < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h index 5055d03bdd..4dc6577763 100644 --- a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h +++ b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h @@ -346,11 +346,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef NonContractingGrammar < > normalized_type; }; template < class SymbolType > @@ -697,7 +692,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::NonContractingGrammar < SymbolType >, typename std::enable_if < ! std::is_same < grammar::NonContractingGrammar < SymbolType >, grammar::NonContractingGrammar < > >::value >::type > { +struct normalize < grammar::NonContractingGrammar < SymbolType > > { static grammar::NonContractingGrammar < > eval ( grammar::NonContractingGrammar < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/grammar/Regular/LeftLG.h b/alib2data/src/grammar/Regular/LeftLG.h index 7a60d0ba8a..753b3c35f6 100644 --- a/alib2data/src/grammar/Regular/LeftLG.h +++ b/alib2data/src/grammar/Regular/LeftLG.h @@ -396,11 +396,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef LeftLG < > normalized_type; }; template < class SymbolType > @@ -806,7 +801,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::LeftLG < SymbolType >, typename std::enable_if < ! std::is_same < grammar::LeftLG < SymbolType >, grammar::LeftLG < > >::value >::type > { +struct normalize < grammar::LeftLG < SymbolType > > { static grammar::LeftLG < > eval ( grammar::LeftLG < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/grammar/Regular/LeftRG.h b/alib2data/src/grammar/Regular/LeftRG.h index e3fad94bef..baf22c45b6 100644 --- a/alib2data/src/grammar/Regular/LeftRG.h +++ b/alib2data/src/grammar/Regular/LeftRG.h @@ -419,11 +419,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef LeftRG < > normalized_type; }; template < class SymbolType > @@ -839,7 +834,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::LeftRG < SymbolType >, typename std::enable_if < ! std::is_same < grammar::LeftRG < SymbolType >, grammar::LeftRG < > >::value >::type > { +struct normalize < grammar::LeftRG < SymbolType > > { static grammar::LeftRG < > eval ( grammar::LeftRG < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/grammar/Regular/RightLG.h b/alib2data/src/grammar/Regular/RightLG.h index f81eedb97d..991fb82025 100644 --- a/alib2data/src/grammar/Regular/RightLG.h +++ b/alib2data/src/grammar/Regular/RightLG.h @@ -396,11 +396,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef RightLG < > normalized_type; }; template < class SymbolType > @@ -804,7 +799,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::RightLG < SymbolType >, typename std::enable_if < ! std::is_same < grammar::RightLG < SymbolType >, grammar::RightLG < > >::value >::type > { +struct normalize < grammar::RightLG < SymbolType > > { static grammar::RightLG < > eval ( grammar::RightLG < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/grammar/Regular/RightRG.h b/alib2data/src/grammar/Regular/RightRG.h index c7a74ecde6..0bb59280d0 100644 --- a/alib2data/src/grammar/Regular/RightRG.h +++ b/alib2data/src/grammar/Regular/RightRG.h @@ -419,11 +419,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef RightRG < > normalized_type; }; template < class SymbolType > @@ -836,7 +831,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::RightRG < SymbolType >, typename std::enable_if < ! std::is_same < grammar::RightRG < SymbolType >, grammar::RightRG < > >::value >::type > { +struct normalize < grammar::RightRG < SymbolType > > { static grammar::RightRG < > eval ( grammar::RightRG < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h index eee1525da3..d39c94c124 100644 --- a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h +++ b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h @@ -333,11 +333,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef ContextPreservingUnrestrictedGrammar < > normalized_type; }; template < class SymbolType > @@ -674,7 +669,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::ContextPreservingUnrestrictedGrammar < SymbolType >, typename std::enable_if < ! std::is_same < grammar::ContextPreservingUnrestrictedGrammar < SymbolType >, grammar::ContextPreservingUnrestrictedGrammar < > >::value >::type > { +struct normalize < grammar::ContextPreservingUnrestrictedGrammar < SymbolType > > { static grammar::ContextPreservingUnrestrictedGrammar < > eval ( grammar::ContextPreservingUnrestrictedGrammar < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h index b9c226e618..f5fde89328 100644 --- a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h +++ b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h @@ -333,11 +333,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized grammar. - */ - typedef UnrestrictedGrammar < > normalized_type; }; template < class SymbolType > @@ -653,7 +648,7 @@ public: * \returns new instance of the grammar with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < grammar::UnrestrictedGrammar < SymbolType >, typename std::enable_if < ! std::is_same < grammar::UnrestrictedGrammar < SymbolType >, grammar::UnrestrictedGrammar < > >::value >::type > { +struct normalize < grammar::UnrestrictedGrammar < SymbolType > > { static grammar::UnrestrictedGrammar < > eval ( grammar::UnrestrictedGrammar < SymbolType > && value ) { ext::set < DefaultSymbolType > nonterminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonterminalAlphabet ( ) ); ext::set < DefaultSymbolType > terminals = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getTerminalAlphabet ( ) ); diff --git a/alib2data/src/indexes/arbology/CompressedBitParallelTreeIndex.h b/alib2data/src/indexes/arbology/CompressedBitParallelTreeIndex.h index 041d72cf6f..5355c73794 100644 --- a/alib2data/src/indexes/arbology/CompressedBitParallelTreeIndex.h +++ b/alib2data/src/indexes/arbology/CompressedBitParallelTreeIndex.h @@ -125,8 +125,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef CompressedBitParallelTreeIndex < > normalized_type; }; } /* namespace arbology */ @@ -246,7 +244,7 @@ public: }; template < class SymbolType, class RankType > -struct normalize < indexes::arbology::CompressedBitParallelTreeIndex < SymbolType, RankType >, typename std::enable_if < ! std::is_same < indexes::arbology::CompressedBitParallelTreeIndex < SymbolType, RankType >, indexes::arbology::CompressedBitParallelTreeIndex < > >::value >::type > { +struct normalize < indexes::arbology::CompressedBitParallelTreeIndex < SymbolType, RankType > > { static indexes::arbology::CompressedBitParallelTreeIndex < > eval ( indexes::arbology::CompressedBitParallelTreeIndex < SymbolType, RankType > && value ) { ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > alphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getAlphabet ( ) ); diff --git a/alib2data/src/indexes/arbology/FullAndLinearIndex.h b/alib2data/src/indexes/arbology/FullAndLinearIndex.h index c8ac3ff477..e7d3bac7a0 100644 --- a/alib2data/src/indexes/arbology/FullAndLinearIndex.h +++ b/alib2data/src/indexes/arbology/FullAndLinearIndex.h @@ -112,8 +112,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef FullAndLinearIndex < > normalized_type; }; } /* namespace arbology */ @@ -197,7 +195,7 @@ object::ObjectBase * FullAndLinearIndex < SymbolType, RankType, StringIndex >::i namespace core { template < class SymbolType, class RankType, template < typename > class StringIndex > -struct normalize < indexes::arbology::FullAndLinearIndex < SymbolType, RankType, StringIndex >, typename std::enable_if < ! std::is_same < indexes::arbology::FullAndLinearIndex < SymbolType, RankType, StringIndex >, indexes::arbology::FullAndLinearIndex < > >::value >::type > { +struct normalize < indexes::arbology::FullAndLinearIndex < SymbolType, RankType, StringIndex > > { static indexes::arbology::FullAndLinearIndex < > eval ( indexes::arbology::FullAndLinearIndex < SymbolType, RankType, StringIndex > && value ) { StringIndex < common::ranked_symbol < > > stringIndex = core::normalize < StringIndex < common::ranked_symbol < SymbolType, RankType > > >::eval ( std::move ( value ).getStringIndex ( ) ); diff --git a/alib2data/src/indexes/arbology/NonlinearCompressedBitParallelTreeIndex.h b/alib2data/src/indexes/arbology/NonlinearCompressedBitParallelTreeIndex.h index a181209043..6e4d798c15 100644 --- a/alib2data/src/indexes/arbology/NonlinearCompressedBitParallelTreeIndex.h +++ b/alib2data/src/indexes/arbology/NonlinearCompressedBitParallelTreeIndex.h @@ -128,8 +128,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef NonlinearCompressedBitParallelTreeIndex < > normalized_type; }; } /* namespace arbology */ @@ -259,7 +257,7 @@ public: }; template < class SymbolType, class RankType > -struct normalize < indexes::arbology::NonlinearCompressedBitParallelTreeIndex < SymbolType, RankType >, typename std::enable_if < ! std::is_same < indexes::arbology::NonlinearCompressedBitParallelTreeIndex < SymbolType, RankType >, indexes::arbology::NonlinearCompressedBitParallelTreeIndex < > >::value >::type > { +struct normalize < indexes::arbology::NonlinearCompressedBitParallelTreeIndex < SymbolType, RankType > > { static indexes::arbology::NonlinearCompressedBitParallelTreeIndex < > eval ( indexes::arbology::NonlinearCompressedBitParallelTreeIndex < SymbolType, RankType > && value ) { ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > alphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getAlphabet ( ) ); diff --git a/alib2data/src/indexes/arbology/NonlinearFullAndLinearIndex.h b/alib2data/src/indexes/arbology/NonlinearFullAndLinearIndex.h index 206c2de109..29ec200435 100644 --- a/alib2data/src/indexes/arbology/NonlinearFullAndLinearIndex.h +++ b/alib2data/src/indexes/arbology/NonlinearFullAndLinearIndex.h @@ -120,8 +120,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef NonlinearFullAndLinearIndex < > normalized_type; }; } /* namespace arbology */ @@ -215,7 +213,7 @@ object::ObjectBase * NonlinearFullAndLinearIndex < SymbolType, RankType, StringI namespace core { template < class SymbolType, class RankType, template < typename > class StringIndex > -struct normalize < indexes::arbology::NonlinearFullAndLinearIndex < SymbolType, RankType, StringIndex >, typename std::enable_if < ! std::is_same < indexes::arbology::NonlinearFullAndLinearIndex < SymbolType, RankType, StringIndex >, indexes::arbology::NonlinearFullAndLinearIndex < > >::value >::type > { +struct normalize < indexes::arbology::NonlinearFullAndLinearIndex < SymbolType, RankType, StringIndex > > { static indexes::arbology::NonlinearFullAndLinearIndex < > eval ( indexes::arbology::NonlinearFullAndLinearIndex < SymbolType, RankType, StringIndex > && value ) { StringIndex < common::ranked_symbol < > > stringIndex = core::normalize < StringIndex < common::ranked_symbol < SymbolType, RankType > > >::eval ( std::move ( value ).getStringIndex ( ) ); diff --git a/alib2data/src/indexes/stringology/BNDMMatcher.h b/alib2data/src/indexes/stringology/BNDMMatcher.h index 660bebdf81..ce579acb8d 100644 --- a/alib2data/src/indexes/stringology/BNDMMatcher.h +++ b/alib2data/src/indexes/stringology/BNDMMatcher.h @@ -119,8 +119,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef BNDMMatcher < > normalized_type; }; } /* namespace stringology */ @@ -220,14 +218,7 @@ public: }; template < class SymbolType, size_t BitmaskBitCount > -struct normalize < indexes::stringology::BNDMMatcher < SymbolType, BitmaskBitCount >, typename std::enable_if < ! std::is_same < indexes::stringology::BNDMMatcher < SymbolType, BitmaskBitCount >, indexes::stringology::BNDMMatcher < > >::value && std::is_same < indexes::stringology::BNDMMatcher < SymbolType, BitmaskBitCount >, indexes::stringology::BNDMMatcher < DefaultSymbolType, BitmaskBitCount > >::value >::type > { - static indexes::stringology::BNDMMatcher < DefaultSymbolType, BitmaskBitCount > && eval ( indexes::stringology::BNDMMatcher < SymbolType, BitmaskBitCount > && value ) { - return std::move ( value ); - } -}; - -template < class SymbolType, size_t BitmaskBitCount > -struct normalize < indexes::stringology::BNDMMatcher < SymbolType, BitmaskBitCount >, typename std::enable_if < ! std::is_same < indexes::stringology::BNDMMatcher < SymbolType, BitmaskBitCount >, indexes::stringology::BNDMMatcher < DefaultSymbolType, BitmaskBitCount > >::value && ! std::is_same < indexes::stringology::BNDMMatcher < SymbolType, BitmaskBitCount >, indexes::stringology::BNDMMatcher < DefaultSymbolType, BitmaskBitCount > >::value >::type > { +struct normalize < indexes::stringology::BNDMMatcher < SymbolType, BitmaskBitCount > > { static indexes::stringology::BNDMMatcher < DefaultSymbolType, BitmaskBitCount > eval ( indexes::stringology::BNDMMatcher < SymbolType, BitmaskBitCount > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlphabet ( ) ); diff --git a/alib2data/src/indexes/stringology/BitParallelIndex.h b/alib2data/src/indexes/stringology/BitParallelIndex.h index abcc647a9b..013f7738b6 100644 --- a/alib2data/src/indexes/stringology/BitParallelIndex.h +++ b/alib2data/src/indexes/stringology/BitParallelIndex.h @@ -114,8 +114,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef BitParallelIndex < > normalized_type; }; } /* namespace stringology */ @@ -222,7 +220,7 @@ public: }; template < class SymbolType > -struct normalize < indexes::stringology::BitParallelIndex < SymbolType >, typename std::enable_if < ! std::is_same < indexes::stringology::BitParallelIndex < SymbolType >, indexes::stringology::BitParallelIndex < > >::value >::type > { +struct normalize < indexes::stringology::BitParallelIndex < SymbolType > > { static indexes::stringology::BitParallelIndex < > eval ( indexes::stringology::BitParallelIndex < SymbolType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlphabet ( ) ); diff --git a/alib2data/src/indexes/stringology/CompressedBitParallelIndex.h b/alib2data/src/indexes/stringology/CompressedBitParallelIndex.h index 8f6096c959..99e4cf8481 100644 --- a/alib2data/src/indexes/stringology/CompressedBitParallelIndex.h +++ b/alib2data/src/indexes/stringology/CompressedBitParallelIndex.h @@ -114,8 +114,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef CompressedBitParallelIndex < > normalized_type; }; } /* namespace stringology */ @@ -222,7 +220,7 @@ public: }; template < class SymbolType > -struct normalize < indexes::stringology::CompressedBitParallelIndex < SymbolType >, typename std::enable_if < ! std::is_same < indexes::stringology::CompressedBitParallelIndex < SymbolType >, indexes::stringology::CompressedBitParallelIndex < > >::value >::type > { +struct normalize < indexes::stringology::CompressedBitParallelIndex < SymbolType > > { static indexes::stringology::CompressedBitParallelIndex < > eval ( indexes::stringology::CompressedBitParallelIndex < SymbolType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlphabet ( ) ); diff --git a/alib2data/src/indexes/stringology/FactorOracleAutomaton.h b/alib2data/src/indexes/stringology/FactorOracleAutomaton.h index f8ae660d42..c6ecbd8740 100644 --- a/alib2data/src/indexes/stringology/FactorOracleAutomaton.h +++ b/alib2data/src/indexes/stringology/FactorOracleAutomaton.h @@ -102,8 +102,6 @@ public: explicit operator automaton::DFA < SymbolType, unsigned > ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef FactorOracleAutomaton < > normalized_type; }; } /* namespace stringology */ @@ -177,7 +175,7 @@ object::ObjectBase* FactorOracleAutomaton < SymbolType >::inc() && { namespace core { template < class SymbolType > -struct normalize < indexes::stringology::FactorOracleAutomaton < SymbolType >, typename std::enable_if < ! std::is_same < indexes::stringology::FactorOracleAutomaton < SymbolType >, indexes::stringology::FactorOracleAutomaton < > >::value >::type > { +struct normalize < indexes::stringology::FactorOracleAutomaton < SymbolType > > { static indexes::stringology::FactorOracleAutomaton < > eval ( indexes::stringology::FactorOracleAutomaton < SymbolType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( std::move ( value ).getAutomaton ( ) ).getInputAlphabet ( ) ); ext::set < unsigned > states = std::move ( std::move ( value ).getAutomaton ( ) ).getStates ( ); diff --git a/alib2data/src/indexes/stringology/PositionHeap.h b/alib2data/src/indexes/stringology/PositionHeap.h index a3720e30c4..eb9a8a0725 100644 --- a/alib2data/src/indexes/stringology/PositionHeap.h +++ b/alib2data/src/indexes/stringology/PositionHeap.h @@ -124,8 +124,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef PositionHeap < > normalized_type; }; } /* namespace stringology */ @@ -249,13 +247,6 @@ public: } }; -template < > -struct normalize < indexes::stringology::PositionHeap < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > > { - static indexes::stringology::PositionHeap < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > && eval ( indexes::stringology::PositionHeap < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > && source ) { - return std::move ( source ); - } -}; - template < class SymbolType, class RankType > struct normalize < indexes::stringology::PositionHeap < common::ranked_symbol < SymbolType, RankType > > > { static indexes::stringology::PositionHeap < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > eval ( indexes::stringology::PositionHeap < common::ranked_symbol < SymbolType, RankType > > && source ) { @@ -268,7 +259,7 @@ struct normalize < indexes::stringology::PositionHeap < common::ranked_symbol < }; template < class SymbolType > -struct normalize < indexes::stringology::PositionHeap < SymbolType >, typename std::enable_if < ! std::is_same < indexes::stringology::PositionHeap < SymbolType >, indexes::stringology::PositionHeap < > >::value >::type > { +struct normalize < indexes::stringology::PositionHeap < SymbolType > > { static indexes::stringology::PositionHeap < > eval ( indexes::stringology::PositionHeap < SymbolType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlphabet ( ) ); ext::trie < DefaultSymbolType, unsigned > trie = indexes::IndexesNormalize::normalizeTrie ( std::move ( value ).getRoot ( ) ); diff --git a/alib2data/src/indexes/stringology/SuffixArray.h b/alib2data/src/indexes/stringology/SuffixArray.h index 567923f061..e596666215 100644 --- a/alib2data/src/indexes/stringology/SuffixArray.h +++ b/alib2data/src/indexes/stringology/SuffixArray.h @@ -186,11 +186,6 @@ public: * @copydoc alib::ObjectBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized index. - */ - typedef SuffixArray < > normalized_type; }; } /* namespace stringology */ @@ -279,7 +274,7 @@ namespace core { * \returns new instance of the index with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType > -struct normalize < indexes::stringology::SuffixArray < SymbolType >, typename std::enable_if < ! std::is_same < indexes::stringology::SuffixArray < SymbolType >, indexes::stringology::SuffixArray < > >::value >::type > { +struct normalize < indexes::stringology::SuffixArray < SymbolType > > { static indexes::stringology::SuffixArray < > eval ( indexes::stringology::SuffixArray < SymbolType > && value ) { string::LinearString < DefaultSymbolType > string = normalize < string::LinearString < SymbolType > >::eval ( std::move ( value ).getString ( ) ); diff --git a/alib2data/src/indexes/stringology/SuffixAutomaton.h b/alib2data/src/indexes/stringology/SuffixAutomaton.h index 7f28b6d8b7..a5c67c9b76 100644 --- a/alib2data/src/indexes/stringology/SuffixAutomaton.h +++ b/alib2data/src/indexes/stringology/SuffixAutomaton.h @@ -175,11 +175,6 @@ public: * @copydoc alib::ObjectBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized index. - */ - typedef SuffixAutomaton < > normalized_type; }; } /* namespace stringology */ @@ -258,7 +253,7 @@ namespace core { * \returns new instance of the index with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType > -struct normalize < indexes::stringology::SuffixAutomaton < SymbolType >, typename std::enable_if < ! std::is_same < indexes::stringology::SuffixAutomaton < SymbolType >, indexes::stringology::SuffixAutomaton < > >::value >::type > { +struct normalize < indexes::stringology::SuffixAutomaton < SymbolType > > { static indexes::stringology::SuffixAutomaton < > eval ( indexes::stringology::SuffixAutomaton < SymbolType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( std::move ( value ).getAutomaton ( ) ).getInputAlphabet ( ) ); ext::set < unsigned > states = std::move ( std::move ( value ).getAutomaton ( ) ).getStates ( ); diff --git a/alib2data/src/indexes/stringology/SuffixTrie.h b/alib2data/src/indexes/stringology/SuffixTrie.h index f635c3f5ff..dca3531c74 100644 --- a/alib2data/src/indexes/stringology/SuffixTrie.h +++ b/alib2data/src/indexes/stringology/SuffixTrie.h @@ -197,11 +197,6 @@ public: * @copydoc alib::ObjectBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized index. - */ - typedef SuffixTrie < > normalized_type; }; } /* namespace stringology */ @@ -358,7 +353,7 @@ public: * \returns new instance of the index with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType > -struct normalize < indexes::stringology::SuffixTrie < SymbolType >, typename std::enable_if < ! std::is_same < indexes::stringology::SuffixTrie < SymbolType >, indexes::stringology::SuffixTrie < > >::value >::type > { +struct normalize < indexes::stringology::SuffixTrie < SymbolType > > { static indexes::stringology::SuffixTrie < > eval ( indexes::stringology::SuffixTrie < SymbolType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlpahet ( ) ); ext::trie < DefaultSymbolType, ext::variant < void, unsigned > > trie = indexes::IndexesNormalize::normalizeTrie ( std::move ( value ).getRoot ( ) ); diff --git a/alib2data/src/label/FailStateLabel.h b/alib2data/src/label/FailStateLabel.h index 56e23f9598..2cef0752ba 100644 --- a/alib2data/src/label/FailStateLabel.h +++ b/alib2data/src/label/FailStateLabel.h @@ -47,8 +47,6 @@ public: static inline typename std::enable_if < ! std::is_integral < Base >::value, Base >::type instance ( ); virtual LabelBase * inc ( ) &&; - - typedef FailStateLabel normalized_type; }; template < typename Base > diff --git a/alib2data/src/label/FinalStateLabel.h b/alib2data/src/label/FinalStateLabel.h index adbb34cc93..73cdc01852 100644 --- a/alib2data/src/label/FinalStateLabel.h +++ b/alib2data/src/label/FinalStateLabel.h @@ -47,8 +47,6 @@ public: static inline typename std::enable_if < ! std::is_integral < Base >::value, Base >::type instance ( ); virtual LabelBase * inc ( ) &&; - - typedef FinalStateLabel normalized_type; }; template < typename Base > diff --git a/alib2data/src/label/HexavigesimalLabel.h b/alib2data/src/label/HexavigesimalLabel.h index 2f59d87ab9..e581e7fd4f 100644 --- a/alib2data/src/label/HexavigesimalLabel.h +++ b/alib2data/src/label/HexavigesimalLabel.h @@ -52,8 +52,6 @@ public: virtual explicit operator std::string ( ) const; virtual LabelBase * inc ( ) &&; - - typedef HexavigesimalLabel normalized_type; }; } /* namespace label */ diff --git a/alib2data/src/label/InitialStateLabel.h b/alib2data/src/label/InitialStateLabel.h index 54cc254cf7..c1978b93c9 100644 --- a/alib2data/src/label/InitialStateLabel.h +++ b/alib2data/src/label/InitialStateLabel.h @@ -47,8 +47,6 @@ public: static inline typename std::enable_if < ! std::is_integral < Base >::value, Base >::type instance ( ); virtual LabelBase * inc ( ) &&; - - typedef InitialStateLabel normalized_type; }; template < typename Base > diff --git a/alib2data/src/label/ObjectLabel.h b/alib2data/src/label/ObjectLabel.h index f07fcbd40d..aba4eeee15 100644 --- a/alib2data/src/label/ObjectLabel.h +++ b/alib2data/src/label/ObjectLabel.h @@ -49,8 +49,6 @@ public: virtual explicit operator std::string ( ) const; virtual LabelBase * inc ( ) &&; - - typedef ObjectLabel normalized_type; }; } /* namespace label */ diff --git a/alib2data/src/label/PrimitiveLabel.h b/alib2data/src/label/PrimitiveLabel.h index 8da5811861..e3452a5299 100644 --- a/alib2data/src/label/PrimitiveLabel.h +++ b/alib2data/src/label/PrimitiveLabel.h @@ -51,8 +51,6 @@ public: virtual explicit operator std::string ( ) const; virtual LabelBase * inc ( ) &&; - - typedef PrimitiveLabel normalized_type; }; } /* namespace label */ diff --git a/alib2data/src/label/UniqueLabel.h b/alib2data/src/label/UniqueLabel.h index bda4e39196..94ea914cf3 100644 --- a/alib2data/src/label/UniqueLabel.h +++ b/alib2data/src/label/UniqueLabel.h @@ -54,8 +54,6 @@ public: virtual explicit operator std::string ( ) const; virtual LabelBase * inc ( ) &&; - - typedef UniqueLabel normalized_type; }; } /* namespace label */ diff --git a/alib2data/src/regexp/formal/FormalRegExp.h b/alib2data/src/regexp/formal/FormalRegExp.h index bf7d257a9c..29e94935eb 100644 --- a/alib2data/src/regexp/formal/FormalRegExp.h +++ b/alib2data/src/regexp/formal/FormalRegExp.h @@ -182,11 +182,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized expression. - */ - typedef FormalRegExp < > normalized_type; }; } /* namespace regexp */ @@ -320,7 +315,7 @@ public: * \returns new instance of the expression with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType > -struct normalize < regexp::FormalRegExp < SymbolType >, typename std::enable_if < ! std::is_same < regexp::FormalRegExp < SymbolType >, regexp::FormalRegExp < > >::value >::type > { +struct normalize < regexp::FormalRegExp < SymbolType > > { static regexp::FormalRegExp < > eval ( regexp::FormalRegExp < SymbolType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlphabet ( ) ); diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExp.h b/alib2data/src/regexp/unbounded/UnboundedRegExp.h index 3b3c6354e8..786455f205 100644 --- a/alib2data/src/regexp/unbounded/UnboundedRegExp.h +++ b/alib2data/src/regexp/unbounded/UnboundedRegExp.h @@ -184,11 +184,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized expression. - */ - typedef UnboundedRegExp < > normalized_type; }; } /* namespace regexp */ @@ -322,7 +317,7 @@ public: * \returns new instance of the expression with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType > -struct normalize < regexp::UnboundedRegExp < SymbolType >, typename std::enable_if < ! std::is_same < regexp::UnboundedRegExp < SymbolType >, regexp::UnboundedRegExp < > >::value >::type > { +struct normalize < regexp::UnboundedRegExp < SymbolType > > { static regexp::UnboundedRegExp < > eval ( regexp::UnboundedRegExp < SymbolType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlphabet ( ) ); diff --git a/alib2data/src/rte/formal/FormalRTE.h b/alib2data/src/rte/formal/FormalRTE.h index 93896b967b..b2f22dbe25 100644 --- a/alib2data/src/rte/formal/FormalRTE.h +++ b/alib2data/src/rte/formal/FormalRTE.h @@ -286,11 +286,6 @@ public: * @copydoc alib::GrammarBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized expression. - */ - typedef FormalRTE < > normalized_type; }; template < class SymbolType, class RankType > @@ -466,7 +461,7 @@ public: * \returns new instance of the expression with default template parameters or unmodified instance if the template parameters were already the default ones */ template < class SymbolType, class RankType > -struct normalize < rte::FormalRTE < SymbolType, RankType >, typename std::enable_if < ! std::is_same < rte::FormalRTE < SymbolType, RankType >, rte::FormalRTE < > >::value >::type > { +struct normalize < rte::FormalRTE < SymbolType, RankType > > { static rte::FormalRTE < > eval ( rte::FormalRTE < SymbolType, RankType > && value ) { ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > alphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getAlphabet ( ) ); ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > constants = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getSubstitutionAlphabet ( ) ); diff --git a/alib2data/src/string/CyclicString.h b/alib2data/src/string/CyclicString.h index a9da922e63..17b2acbb03 100644 --- a/alib2data/src/string/CyclicString.h +++ b/alib2data/src/string/CyclicString.h @@ -205,11 +205,6 @@ public: * @copydoc alib::ObjectBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized string. - */ - typedef CyclicString < > normalized_type; }; } /* namespace string */ @@ -366,7 +361,7 @@ public: * \returns new instance of the string with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < string::CyclicString < SymbolType >, typename std::enable_if < ! std::is_same < string::CyclicString < SymbolType >, string::CyclicString < > >::value >::type > { +struct normalize < string::CyclicString < SymbolType > > { static string::CyclicString < > eval ( string::CyclicString < SymbolType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlphabet ( ) ); ext::vector < DefaultSymbolType > content = alphabet::SymbolNormalize::normalizeSymbols ( std::move ( value ).getContent ( ) ); diff --git a/alib2data/src/string/Epsilon.h b/alib2data/src/string/Epsilon.h index 8c5b2b128f..a63d0f7c7b 100644 --- a/alib2data/src/string/Epsilon.h +++ b/alib2data/src/string/Epsilon.h @@ -160,11 +160,6 @@ public: * @copydoc alib::ObjectBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized string. - */ - typedef Epsilon < > normalized_type; }; template < class SymbolType > @@ -274,7 +269,7 @@ public: * \returns new instance of the string with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < string::Epsilon < SymbolType >, typename std::enable_if < ! std::is_same < string::Epsilon < SymbolType >, string::Epsilon < > >::value >::type > { +struct normalize < string::Epsilon < SymbolType > > { static string::Epsilon < > eval ( string::Epsilon < SymbolType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlphabet ( ) ); return string::Epsilon < > ( std::move ( alphabet ) ); diff --git a/alib2data/src/string/LinearString.h b/alib2data/src/string/LinearString.h index 38ce038ff8..6e38d9c5a3 100644 --- a/alib2data/src/string/LinearString.h +++ b/alib2data/src/string/LinearString.h @@ -209,11 +209,6 @@ public: * @copydoc alib::ObjectBase::inc() */ virtual object::ObjectBase * inc ( ) && override; - - /** - * Type of normalized string. - */ - typedef LinearString < > normalized_type; }; } /* namespace string */ @@ -382,7 +377,7 @@ public: * \returns new instance of the string with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < string::LinearString < SymbolType >, typename std::enable_if < ! std::is_same < string::LinearString < SymbolType >, string::LinearString < > >::value >::type > { +struct normalize < string::LinearString < SymbolType > > { static string::LinearString < > eval ( string::LinearString < SymbolType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlphabet ( ) ); ext::vector < DefaultSymbolType > content = alphabet::SymbolNormalize::normalizeSymbols ( std::move ( value ).getContent ( ) ); diff --git a/alib2data/src/tree/ranked/PostfixRankedTree.h b/alib2data/src/tree/ranked/PostfixRankedTree.h index e399d4d13b..f574d49560 100644 --- a/alib2data/src/tree/ranked/PostfixRankedTree.h +++ b/alib2data/src/tree/ranked/PostfixRankedTree.h @@ -230,11 +230,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized tree. - */ - typedef PostfixRankedTree < > normalized_type; - /** * \brief Creates a new instance of the string from a linear representation of a tree * @@ -426,7 +421,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType, class RankType > -struct normalize < tree::PostfixRankedTree < SymbolType, RankType >, typename std::enable_if < ! std::is_same < tree::PostfixRankedTree < SymbolType, RankType >, tree::PostfixRankedTree < > >::value >::type > { +struct normalize < tree::PostfixRankedTree < SymbolType, RankType > > { static tree::PostfixRankedTree < > eval ( tree::PostfixRankedTree < SymbolType, RankType > && value ) { ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > alphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getAlphabet ( ) ); ext::vector < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > content = alphabet::SymbolNormalize::normalizeRankedSymbols ( std::move ( value ).getContent ( ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h index 01af867737..6768c945d7 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h @@ -398,11 +398,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized pattern. - */ - typedef PrefixRankedBarNonlinearPattern < > normalized_type; - /** * \brief Creates a new instance of the string from a linear representation of a tree * @@ -823,7 +818,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType, class RankType > -struct normalize < tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType >, typename std::enable_if < ! std::is_same < tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType >, tree::PrefixRankedBarNonlinearPattern < > >::value >::type > { +struct normalize < tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType > > { static tree::PrefixRankedBarNonlinearPattern < > eval ( tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType > && value ) { common::ranked_symbol < DefaultSymbolType, DefaultRankType > variablesBars = alphabet::SymbolNormalize::normalizeRankedSymbol ( std::move ( value ).getVariablesBar ( ) ); common::ranked_symbol < DefaultSymbolType, DefaultRankType > wildcard = alphabet::SymbolNormalize::normalizeRankedSymbol ( std::move ( value ).getSubtreeWildcard ( ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h index 4889772538..038f9add79 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h @@ -327,11 +327,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized pattern. - */ - typedef PrefixRankedBarPattern < > normalized_type; - /** * \brief Creates a new instance of the string from a linear representation of a tree * @@ -666,7 +661,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType, class RankType > -struct normalize < tree::PrefixRankedBarPattern < SymbolType, RankType >, typename std::enable_if < ! std::is_same < tree::PrefixRankedBarPattern < SymbolType, RankType >, tree::PrefixRankedBarPattern < > >::value >::type > { +struct normalize < tree::PrefixRankedBarPattern < SymbolType, RankType > > { static tree::PrefixRankedBarPattern < > eval ( tree::PrefixRankedBarPattern < SymbolType, RankType > && value ) { common::ranked_symbol < DefaultSymbolType, DefaultRankType > variablesBars = alphabet::SymbolNormalize::normalizeRankedSymbol ( std::move ( value ).getVariablesBar ( ) ); common::ranked_symbol < DefaultSymbolType, DefaultRankType > wildcard = alphabet::SymbolNormalize::normalizeRankedSymbol ( std::move ( value ).getSubtreeWildcard ( ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.h b/alib2data/src/tree/ranked/PrefixRankedBarTree.h index 7891e11549..6ac150c1e5 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarTree.h +++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.h @@ -273,11 +273,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized tree. - */ - typedef PrefixRankedBarTree < > normalized_type; - /** * \brief Creates a new instance of the string from a linear representation of a tree * @@ -528,7 +523,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType, class RankType > -struct normalize < tree::PrefixRankedBarTree < SymbolType, RankType >, typename std::enable_if < ! std::is_same < tree::PrefixRankedBarTree < SymbolType, RankType >, tree::PrefixRankedBarTree < > >::value >::type > { +struct normalize < tree::PrefixRankedBarTree < SymbolType, RankType > > { static tree::PrefixRankedBarTree < > eval ( tree::PrefixRankedBarTree < SymbolType, RankType > && value ) { ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > bars = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getBars ( ) ); ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > alphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getAlphabet ( ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h index 023dcb6873..733509e17f 100644 --- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h @@ -312,11 +312,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized pattern. - */ - typedef PrefixRankedNonlinearPattern < > normalized_type; - /** * \brief Creates a new instance of the string from a linear representation of a tree * @@ -623,7 +618,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType, class RankType > -struct normalize < tree::PrefixRankedNonlinearPattern < SymbolType, RankType >, typename std::enable_if < ! std::is_same < tree::PrefixRankedNonlinearPattern < SymbolType, RankType >, tree::PrefixRankedNonlinearPattern < > >::value >::type > { +struct normalize < tree::PrefixRankedNonlinearPattern < SymbolType, RankType > > { static tree::PrefixRankedNonlinearPattern < > eval ( tree::PrefixRankedNonlinearPattern < SymbolType, RankType > && value ) { common::ranked_symbol < DefaultSymbolType, DefaultRankType > wildcard = alphabet::SymbolNormalize::normalizeRankedSymbol ( std::move ( value ).getSubtreeWildcard ( ) ); ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > nonlinearAlphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getNonlinearVariables ( ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.h b/alib2data/src/tree/ranked/PrefixRankedPattern.h index 73676d3057..5837d5b12c 100644 --- a/alib2data/src/tree/ranked/PrefixRankedPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedPattern.h @@ -261,11 +261,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized pattern. - */ - typedef PrefixRankedPattern < > normalized_type; - /** * \brief Creates a new instance of the string from a linear representation of a tree * @@ -498,7 +493,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType, class RankType > -struct normalize < tree::PrefixRankedPattern < SymbolType, RankType >, typename std::enable_if < ! std::is_same < tree::PrefixRankedPattern < SymbolType, RankType >, tree::PrefixRankedPattern < > >::value >::type > { +struct normalize < tree::PrefixRankedPattern < SymbolType, RankType > > { static tree::PrefixRankedPattern < > eval ( tree::PrefixRankedPattern < SymbolType, RankType > && value ) { common::ranked_symbol < DefaultSymbolType, DefaultRankType > wildcard = alphabet::SymbolNormalize::normalizeRankedSymbol ( std::move ( value ).getSubtreeWildcard ( ) ); ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > alphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getAlphabet ( ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.h b/alib2data/src/tree/ranked/PrefixRankedTree.h index 568e402f0c..c55f72c1ec 100644 --- a/alib2data/src/tree/ranked/PrefixRankedTree.h +++ b/alib2data/src/tree/ranked/PrefixRankedTree.h @@ -236,11 +236,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized tree. - */ - typedef PrefixRankedTree < > normalized_type; - /** * \brief Creates a new instance of the string from a linear representation of a tree * @@ -435,7 +430,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType, class RankType > -struct normalize < tree::PrefixRankedTree < SymbolType, RankType >, typename std::enable_if < ! std::is_same < tree::PrefixRankedTree < SymbolType, RankType >, tree::PrefixRankedTree < > >::value >::type > { +struct normalize < tree::PrefixRankedTree < SymbolType, RankType > > { static tree::PrefixRankedTree < > eval ( tree::PrefixRankedTree < SymbolType, RankType > && value ) { ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > alphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getAlphabet ( ) ); ext::vector < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > content = alphabet::SymbolNormalize::normalizeRankedSymbols ( std::move ( value ).getContent ( ) ); diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.h b/alib2data/src/tree/ranked/RankedNonlinearPattern.h index 3917aab71c..5e876de085 100644 --- a/alib2data/src/tree/ranked/RankedNonlinearPattern.h +++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.h @@ -286,11 +286,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized pattern. - */ - typedef RankedNonlinearPattern < > normalized_type; - /** * Nice printer of the tree natural representation * @@ -567,7 +562,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType, class RankType > -struct normalize < tree::RankedNonlinearPattern < SymbolType, RankType >, typename std::enable_if < ! std::is_same < tree::RankedNonlinearPattern < SymbolType, RankType >, tree::RankedNonlinearPattern < > >::value >::type > { +struct normalize < tree::RankedNonlinearPattern < SymbolType, RankType > > { static tree::RankedNonlinearPattern < > eval ( tree::RankedNonlinearPattern < SymbolType, RankType > && value ) { common::ranked_symbol < DefaultSymbolType, DefaultRankType > wildcard = alphabet::SymbolNormalize::normalizeRankedSymbol ( std::move ( value ).getSubtreeWildcard ( ) ); ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > nonlinearAlphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getNonlinearVariables ( ) ); diff --git a/alib2data/src/tree/ranked/RankedPattern.h b/alib2data/src/tree/ranked/RankedPattern.h index c6ccde7ebe..e07942433f 100644 --- a/alib2data/src/tree/ranked/RankedPattern.h +++ b/alib2data/src/tree/ranked/RankedPattern.h @@ -256,11 +256,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized pattern. - */ - typedef RankedPattern < > normalized_type; - /** * Nice printer of the tree natural representation * @@ -478,7 +473,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType, class RankType > -struct normalize < tree::RankedPattern < SymbolType, RankType >, typename std::enable_if < ! std::is_same < tree::RankedPattern < SymbolType, RankType >, tree::RankedPattern < > >::value >::type > { +struct normalize < tree::RankedPattern < SymbolType, RankType > > { static tree::RankedPattern < > eval ( tree::RankedPattern < SymbolType, RankType > && value ) { common::ranked_symbol < DefaultSymbolType, DefaultRankType > wildcard = alphabet::SymbolNormalize::normalizeRankedSymbol ( std::move ( value ).getSubtreeWildcard ( ) ); ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > alphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getAlphabet ( ) ); diff --git a/alib2data/src/tree/ranked/RankedTree.h b/alib2data/src/tree/ranked/RankedTree.h index 9a86c2be34..e88a222db9 100644 --- a/alib2data/src/tree/ranked/RankedTree.h +++ b/alib2data/src/tree/ranked/RankedTree.h @@ -242,11 +242,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized tree. - */ - typedef RankedTree < > normalized_type; - /** * Hierarchical printer of the tree. * @@ -432,7 +427,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType, class RankType > -struct normalize < tree::RankedTree < SymbolType, RankType >, typename std::enable_if < ! std::is_same < tree::RankedTree < SymbolType, RankType >, tree::RankedTree < > >::value >::type > { +struct normalize < tree::RankedTree < SymbolType, RankType > > { static tree::RankedTree < > eval ( tree::RankedTree < SymbolType, RankType > && value ) { ext::set < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > alphabet = alphabet::SymbolNormalize::normalizeRankedAlphabet ( std::move ( value ).getAlphabet ( ) ); ext::tree < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > content = tree::TreeNormalize::normalizeRankedTree ( std::move ( value ).getContent ( ) ); diff --git a/alib2data/src/tree/unranked/PrefixBarTree.h b/alib2data/src/tree/unranked/PrefixBarTree.h index 0c1a55f986..dcc4a7042b 100644 --- a/alib2data/src/tree/unranked/PrefixBarTree.h +++ b/alib2data/src/tree/unranked/PrefixBarTree.h @@ -261,11 +261,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized tree. - */ - typedef PrefixBarTree < > normalized_type; - /** * \brief Creates a new instance of the string from a linear representation of a tree * @@ -493,7 +488,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < tree::PrefixBarTree < SymbolType >, typename std::enable_if < ! std::is_same < tree::PrefixBarTree < SymbolType >, tree::PrefixBarTree < > >::value >::type > { +struct normalize < tree::PrefixBarTree < SymbolType > > { static tree::PrefixBarTree < > eval ( tree::PrefixBarTree < SymbolType > && value ) { DefaultSymbolType bar = alphabet::SymbolNormalize::normalizeSymbol ( std::move ( value ).getBar ( ) ); ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlphabet ( ) ); diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h index f6f2a92aef..610807f8ed 100644 --- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h +++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h @@ -275,11 +275,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized pattern. - */ - typedef UnrankedNonlinearPattern < > normalized_type; - /** * Nice printer of the tree natural representation * @@ -537,7 +532,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < tree::UnrankedNonlinearPattern < SymbolType >, typename std::enable_if < ! std::is_same < tree::UnrankedNonlinearPattern < SymbolType >, tree::UnrankedNonlinearPattern < > >::value >::type > { +struct normalize < tree::UnrankedNonlinearPattern < SymbolType > > { static tree::UnrankedNonlinearPattern < > eval ( tree::UnrankedNonlinearPattern < SymbolType > && value ) { DefaultSymbolType wildcard = alphabet::SymbolNormalize::normalizeSymbol ( std::move ( value ).getSubtreeWildcard ( ) ); ext::set < DefaultSymbolType > nonlinearAlphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getNonlinearVariables ( ) ); diff --git a/alib2data/src/tree/unranked/UnrankedPattern.h b/alib2data/src/tree/unranked/UnrankedPattern.h index 5303511294..f1e85f9ec6 100644 --- a/alib2data/src/tree/unranked/UnrankedPattern.h +++ b/alib2data/src/tree/unranked/UnrankedPattern.h @@ -246,11 +246,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized pattern. - */ - typedef UnrankedPattern < > normalized_type; - /** * Nice printer of the tree natural representation * @@ -454,7 +449,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < tree::UnrankedPattern < SymbolType >, typename std::enable_if < ! std::is_same < tree::UnrankedPattern < SymbolType >, tree::UnrankedPattern < > >::value >::type > { +struct normalize < tree::UnrankedPattern < SymbolType > > { static tree::UnrankedPattern < > eval ( tree::UnrankedPattern < SymbolType > && value ) { DefaultSymbolType wildcard = alphabet::SymbolNormalize::normalizeSymbol ( std::move ( value ).getSubtreeWildcard ( ) ); ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlphabet ( ) ); diff --git a/alib2data/src/tree/unranked/UnrankedTree.h b/alib2data/src/tree/unranked/UnrankedTree.h index d3742c9145..566dd64f2e 100644 --- a/alib2data/src/tree/unranked/UnrankedTree.h +++ b/alib2data/src/tree/unranked/UnrankedTree.h @@ -224,11 +224,6 @@ public: */ virtual object::ObjectBase * inc ( ) && override; - /** - * Type of normalized pattern. - */ - typedef UnrankedTree < > normalized_type; - /** * Nice printer of the tree natural representation * @@ -398,7 +393,7 @@ public: * \returns new instance of the tree with default template parameters or unmodified instance if the template parameters were already default ones */ template < class SymbolType > -struct normalize < tree::UnrankedTree < SymbolType >, typename std::enable_if < ! std::is_same < tree::UnrankedTree < SymbolType >, tree::UnrankedTree < > >::value >::type > { +struct normalize < tree::UnrankedTree < SymbolType > > { static tree::UnrankedTree < > eval ( tree::UnrankedTree < SymbolType > && value ) { ext::set < DefaultSymbolType > alphabet = alphabet::SymbolNormalize::normalizeAlphabet ( std::move ( value ).getAlphabet ( ) ); ext::tree < DefaultSymbolType > content = tree::TreeNormalize::normalizeTree ( std::move ( value ).getContent ( ) ); diff --git a/alib2data_experimental/src/graph/directed/AdjacencyListDirectedGraph.h b/alib2data_experimental/src/graph/directed/AdjacencyListDirectedGraph.h index 2bbc688bc8..8a0928bac2 100644 --- a/alib2data_experimental/src/graph/directed/AdjacencyListDirectedGraph.h +++ b/alib2data_experimental/src/graph/directed/AdjacencyListDirectedGraph.h @@ -90,8 +90,6 @@ public: } object::ObjectBase * inc ( ) && override; - - typedef AdjacencyListDirectedGraph normalized_type; }; } // namespace graph diff --git a/alib2data_experimental/src/graph/directed/AdjacencyMatrixDirectedGraph.h b/alib2data_experimental/src/graph/directed/AdjacencyMatrixDirectedGraph.h index 4a344aebb0..14f62480b9 100644 --- a/alib2data_experimental/src/graph/directed/AdjacencyMatrixDirectedGraph.h +++ b/alib2data_experimental/src/graph/directed/AdjacencyMatrixDirectedGraph.h @@ -93,8 +93,6 @@ public: } object::ObjectBase * inc ( ) && override; - - typedef AdjacencyMatrixDirectedGraph normalized_type; }; } // namespace graph diff --git a/alib2data_experimental/src/graph/undirected/AdjacencyListUndirectedGraph.h b/alib2data_experimental/src/graph/undirected/AdjacencyListUndirectedGraph.h index 70cc934bf2..bc81187a94 100644 --- a/alib2data_experimental/src/graph/undirected/AdjacencyListUndirectedGraph.h +++ b/alib2data_experimental/src/graph/undirected/AdjacencyListUndirectedGraph.h @@ -87,8 +87,6 @@ public: } object::ObjectBase * inc ( ) && override; - - typedef AdjacencyListUndirectedGraph normalized_type; }; } // namespace graph diff --git a/alib2data_experimental/src/graph/undirected/AdjacencyMatrixUndirectedGraph.h b/alib2data_experimental/src/graph/undirected/AdjacencyMatrixUndirectedGraph.h index a8b56cf1ac..528d4d7279 100644 --- a/alib2data_experimental/src/graph/undirected/AdjacencyMatrixUndirectedGraph.h +++ b/alib2data_experimental/src/graph/undirected/AdjacencyMatrixUndirectedGraph.h @@ -90,8 +90,6 @@ public: } object::ObjectBase * inc ( ) && override; - - typedef AdjacencyMatrixUndirectedGraph normalized_type; }; } // namespace graph diff --git a/alib2data_experimental/src/indexes/stringology/CompactSuffixAutomatonTerminatingSymbol.h b/alib2data_experimental/src/indexes/stringology/CompactSuffixAutomatonTerminatingSymbol.h index 7a2ec0d3df..c6ca7cfce6 100644 --- a/alib2data_experimental/src/indexes/stringology/CompactSuffixAutomatonTerminatingSymbol.h +++ b/alib2data_experimental/src/indexes/stringology/CompactSuffixAutomatonTerminatingSymbol.h @@ -156,8 +156,6 @@ public: virtual object::ObjectBase * inc ( ) &&; - typedef CompactSuffixAutomatonTerminatingSymbol < > normalized_type; - }; template < class SymbolType > @@ -223,7 +221,7 @@ object::ObjectBase* CompactSuffixAutomatonTerminatingSymbol < SymbolType >::inc( namespace core { template < class SymbolType > -struct normalize < indexes::stringology::CompactSuffixAutomatonTerminatingSymbol < SymbolType >, typename std::enable_if < ! std::is_same < indexes::stringology::CompactSuffixAutomatonTerminatingSymbol < SymbolType >, indexes::stringology::CompactSuffixAutomatonTerminatingSymbol < > >::value >::type > { +struct normalize < indexes::stringology::CompactSuffixAutomatonTerminatingSymbol < SymbolType > > { static indexes::stringology::CompactSuffixAutomatonTerminatingSymbol < > eval ( indexes::stringology::CompactSuffixAutomatonTerminatingSymbol < SymbolType > && value ) { indexes::stringology::CompactSuffixAutomatonTerminatingSymbol < DefaultStateType > res; res.setString ( alphabet::SymbolNormalize::normalizeSymbols ( std::move ( value ).getString ( ) ) ); diff --git a/alib2data_experimental/src/indexes/stringology/SuffixTrieTerminatingSymbol.h b/alib2data_experimental/src/indexes/stringology/SuffixTrieTerminatingSymbol.h index e645650589..43c087946f 100644 --- a/alib2data_experimental/src/indexes/stringology/SuffixTrieTerminatingSymbol.h +++ b/alib2data_experimental/src/indexes/stringology/SuffixTrieTerminatingSymbol.h @@ -98,8 +98,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef SuffixTrieTerminatingSymbol normalized_type; }; } /* namespace tree */ diff --git a/alib2data_experimental/src/string/LinearStringTerminatingSymbol.h b/alib2data_experimental/src/string/LinearStringTerminatingSymbol.h index 25f652a9eb..5947d522e6 100644 --- a/alib2data_experimental/src/string/LinearStringTerminatingSymbol.h +++ b/alib2data_experimental/src/string/LinearStringTerminatingSymbol.h @@ -85,8 +85,6 @@ public: virtual explicit operator std::string ( ) const; virtual object::ObjectBase * inc ( ) &&; - - typedef LinearStringTerminatingSymbol normalized_type; }; } /* namespace string */ -- GitLab