aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSusumu Yata <susumu.yata@gmail.com>2018-11-02 14:21:13 +0900
committerGitHub <noreply@github.com>2018-11-02 14:21:13 +0900
commit7dacb0f2400a8b40285e3830784d87bf813de699 (patch)
treeb59083ace18067f7b11ec21bf2a528c7ae180293
parentcd9cd6d78065bbfe68d2755587d71d0440d9b61a (diff)
parentd081cf3abae5bfbc28b7a2fb213fa4336af6bf11 (diff)
downloadmarisa-trie-7dacb0f2400a8b40285e3830784d87bf813de699.tar.gz
Merge pull request #20 from glebm/fix-swap
Fix `swap` overload
-rw-r--r--include/marisa/base.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/include/marisa/base.h b/include/marisa/base.h
index 17606c0..7b1caf3 100644
--- a/include/marisa/base.h
+++ b/include/marisa/base.h
@@ -162,6 +162,13 @@ typedef enum marisa_config_mask_ {
#endif // __cplusplus
#ifdef __cplusplus
+
+// `std::swap` is in <utility> since C++ 11 but in <algorithm> in C++ 98:
+#if __cplusplus>=201103L
+#include <utility>
+#else
+#include <algorithm>
+#endif
namespace marisa {
typedef ::marisa_uint8 UInt8;
@@ -175,12 +182,7 @@ typedef ::marisa_cache_level CacheLevel;
typedef ::marisa_tail_mode TailMode;
typedef ::marisa_node_order NodeOrder;
-template <typename T>
-inline void swap(T &lhs, T &rhs) {
- T temp = lhs;
- lhs = rhs;
- rhs = temp;
-}
+using std::swap;
} // namespace marisa
#endif // __cplusplus