summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/Boost/src/boost/property_tree/id_translator.hpp')
-rw-r--r--3rdParty/Boost/src/boost/property_tree/id_translator.hpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/property_tree/id_translator.hpp b/3rdParty/Boost/src/boost/property_tree/id_translator.hpp
new file mode 100644
index 0000000..02fdf44
--- /dev/null
+++ b/3rdParty/Boost/src/boost/property_tree/id_translator.hpp
@@ -0,0 +1,51 @@
+// ----------------------------------------------------------------------------
+// Copyright (C) 2009 Sebastian Redl
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// For more information, see www.boost.org
+// ----------------------------------------------------------------------------
+
+#ifndef BOOST_PROPERTY_TREE_ID_TRANSLATOR_HPP_INCLUDED
+#define BOOST_PROPERTY_TREE_ID_TRANSLATOR_HPP_INCLUDED
+
+#include <boost/property_tree/ptree_fwd.hpp>
+
+#include <boost/optional.hpp>
+#include <string>
+
+namespace boost { namespace property_tree
+{
+
+ /// Simple implementation of the Translator concept. It does no translation.
+ template <typename T>
+ struct id_translator
+ {
+ typedef T internal_type;
+ typedef T external_type;
+
+ boost::optional<T> get_value(const T &v) { return v; }
+ boost::optional<T> put_value(const T &v) { return v; }
+ };
+
+ // This is the default translator whenever you get two equal types.
+ template <typename T>
+ struct translator_between<T, T>
+ {
+ typedef id_translator<T> type;
+ };
+
+ // A more specific specialization for std::basic_string. Otherwise,
+ // stream_translator's specialization wins.
+ template <typename Ch, typename Traits, typename Alloc>
+ struct translator_between< std::basic_string<Ch, Traits, Alloc>,
+ std::basic_string<Ch, Traits, Alloc> >
+ {
+ typedef id_translator< std::basic_string<Ch, Traits, Alloc> > type;
+ };
+
+}}
+
+#endif