diff --git a/contrib/other-builds/moses2/PhraseImpl.h b/contrib/other-builds/moses2/PhraseImpl.h index 6c116db9b..53f2eec60 100644 --- a/contrib/other-builds/moses2/PhraseImpl.h +++ b/contrib/other-builds/moses2/PhraseImpl.h @@ -1,68 +1,8 @@ #pragma once -#include -#include -#include "Phrase.h" -#include "SubPhrase.h" -#include "legacy/Util2.h" +#include "PhraseImplTemplate.h" namespace Moses2 { -class SubPhrase; - -template -class PhraseImplTemplate : public Phrase -{ -public: - PhraseImplTemplate(MemPool &pool, size_t size) - :m_size(size) - { - m_words = new (pool.Allocate(size)) WORD[size]; - - } - - PhraseImplTemplate(MemPool &pool, const PhraseImplTemplate ©) - :m_size(copy.GetSize()) - { - m_words = new (pool.Allocate(m_size)) WORD[m_size]; - for (size_t i = 0; i < m_size; ++i) { - const WORD &word = copy[i]; - (*this)[i] = word; - } - } - - - virtual ~PhraseImplTemplate() - {} - - const WORD& operator[](size_t pos) const { - return m_words[pos]; - } - - WORD& operator[](size_t pos) { - return m_words[pos]; - } - - size_t GetSize() const - { return m_size; } - - SubPhrase GetSubPhrase(size_t start, size_t end) const - { - SubPhrase ret(*this, start, end); - return ret; - } - -protected: - size_t m_size; - WORD *m_words; - - virtual void CreateFromString(FactorCollection &vocab, const System &system, const std::vector &toks) - { - for (size_t i = 0; i < m_size; ++i) { - WORD &word = (*this)[i]; - word.CreateFromString(vocab, system, toks[i]); - } - } -}; class PhraseImpl : public PhraseImplTemplate { diff --git a/contrib/other-builds/moses2/PhraseImplTemplate.h b/contrib/other-builds/moses2/PhraseImplTemplate.h new file mode 100644 index 000000000..26a4edcb6 --- /dev/null +++ b/contrib/other-builds/moses2/PhraseImplTemplate.h @@ -0,0 +1,81 @@ +/* + * PhraseImplTemplate.h + * + * Created on: 22 Feb 2016 + * Author: hieu + */ + +#pragma once + +#include +#include +#include "Phrase.h" +#include "SubPhrase.h" +#include "legacy/Util2.h" + + + +namespace Moses2 +{ +class SubPhrase; + +template +class PhraseImplTemplate : public Phrase +{ +public: + PhraseImplTemplate(MemPool &pool, size_t size) + :m_size(size) + { + m_words = new (pool.Allocate(size)) WORD[size]; + + } + + PhraseImplTemplate(MemPool &pool, const PhraseImplTemplate ©) + :m_size(copy.GetSize()) + { + m_words = new (pool.Allocate(m_size)) WORD[m_size]; + for (size_t i = 0; i < m_size; ++i) { + const WORD &word = copy[i]; + (*this)[i] = word; + } + } + + + virtual ~PhraseImplTemplate() + {} + + const WORD& operator[](size_t pos) const { + return m_words[pos]; + } + + WORD& operator[](size_t pos) { + return m_words[pos]; + } + + size_t GetSize() const + { return m_size; } + + SubPhrase GetSubPhrase(size_t start, size_t end) const + { + SubPhrase ret(*this, start, end); + return ret; + } + +protected: + size_t m_size; + WORD *m_words; + + void CreateFromString(FactorCollection &vocab, const System &system, const std::vector &toks) + { + for (size_t i = 0; i < m_size; ++i) { + WORD &word = (*this)[i]; + word.CreateFromString(vocab, system, toks[i]); + } + } +}; + +} + + + +