@@ -25,17 +25,8 @@ namespace boost { namespace algorithm {
25
25
template <typename PatIter, typename CorpusIter = PatIter, typename Trait = search_trait<typename std::iterator_traits<PatIter>::value_type>, typename Enable = void >
26
26
class musser_nishanov ;
27
27
28
- /* *
29
- * Musser-Nishanov Accelerated Linear search algorithm.
30
- */
31
- template <typename PatIter, typename CorpusIter, typename Trait>
32
- class musser_nishanov <PatIter, CorpusIter, Trait,
33
- typename disable_if<
34
- typename boost::mpl::and_<
35
- boost::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<CorpusIter>::iterator_category>,
36
- boost::mpl::bool_<Trait::suffix_size>
37
- >::type
38
- >::type>
28
+ template <typename PatIter, typename CorpusIter = PatIter, typename Trait = search_trait<typename std::iterator_traits<PatIter>::value_type> >
29
+ class accelerated_linear
39
30
{
40
31
BOOST_STATIC_ASSERT (( boost::is_same<
41
32
typename std::iterator_traits<PatIter>::value_type,
@@ -132,7 +123,7 @@ typename disable_if<
132
123
}
133
124
134
125
public:
135
- musser_nishanov (PatIter pat_first, PatIter pat_last) : pat_first(pat_first), pat_last(pat_last), k_pattern_length(std::distance(pat_first, pat_last))
126
+ accelerated_linear (PatIter pat_first, PatIter pat_last) : pat_first(pat_first), pat_last(pat_last), k_pattern_length(std::distance(pat_first, pat_last))
136
127
{
137
128
if (k_pattern_length > 0 )
138
129
compute_next ();
@@ -149,6 +140,23 @@ typename disable_if<
149
140
};
150
141
151
142
143
+ /* *
144
+ * Musser-Nishanov Accelerated Linear search algorithm.
145
+ */
146
+ template <typename PatIter, typename CorpusIter, typename Trait>
147
+ class musser_nishanov <PatIter, CorpusIter, Trait,
148
+ typename disable_if<
149
+ typename boost::mpl::and_<
150
+ boost::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<CorpusIter>::iterator_category>,
151
+ boost::mpl::bool_<Trait::suffix_size>
152
+ >::type
153
+ >::type> : public accelerated_linear<PatIter, CorpusIter, Trait>
154
+ {
155
+ public:
156
+ musser_nishanov (PatIter pat_first, PatIter pat_last) : accelerated_linear<PatIter, CorpusIter, Trait>(pat_first, pat_last) {}
157
+ };
158
+
159
+
152
160
/* *
153
161
* Musser-Nishanov Hashed Accelerated Linear search algorithm.
154
162
*/
0 commit comments