summaryrefslogtreecommitdiff
path: root/kaldi_io/src/tools/openfst/include/fst/slist.h
diff options
context:
space:
mode:
authorDeterminant <[email protected]>2015-08-14 11:51:42 +0800
committerDeterminant <[email protected]>2015-08-14 11:51:42 +0800
commit96a32415ab43377cf1575bd3f4f2980f58028209 (patch)
tree30a2d92d73e8f40ac87b79f6f56e227bfc4eea6e /kaldi_io/src/tools/openfst/include/fst/slist.h
parentc177a7549bd90670af4b29fa813ddea32cfe0f78 (diff)
add implementation for kaldi io (by ymz)
Diffstat (limited to 'kaldi_io/src/tools/openfst/include/fst/slist.h')
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/slist.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/kaldi_io/src/tools/openfst/include/fst/slist.h b/kaldi_io/src/tools/openfst/include/fst/slist.h
new file mode 100644
index 0000000..b800522
--- /dev/null
+++ b/kaldi_io/src/tools/openfst/include/fst/slist.h
@@ -0,0 +1,61 @@
+// slist.h
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Author: [email protected] (Michael Riley)
+//
+// \file
+// Includes slist definition or defines in terms of STL list as a fallback.
+
+#ifndef FST_LIB_SLIST_H__
+#define FST_LIB_SLIST_H__
+
+#include <fst/config.h>
+
+#ifdef HAVE___GNU_CXX__SLIST_INT_
+
+#include <ext/slist>
+
+namespace fst {
+
+using __gnu_cxx::slist;
+
+}
+
+#else
+
+#include <list>
+
+namespace fst {
+
+using std::list;
+
+template <typename T> class slist : public list<T> {
+ public:
+ typedef typename list<T>::iterator iterator;
+ typedef typename list<T>::const_iterator const_iterator;
+
+ using list<T>::erase;
+
+ iterator erase_after(iterator pos) {
+ iterator npos = pos;
+ erase(++npos);
+ return pos;
+ }
+};
+
+} // namespace fst
+
+#endif // HAVE___GNU_CXX__SLIST_INT_
+
+#endif // FST_LIB_SLIST_H__