aboutsummaryrefslogtreecommitdiff
path: root/cutl/details/boost/implicit_cast.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'cutl/details/boost/implicit_cast.hpp')
-rw-r--r--cutl/details/boost/implicit_cast.hpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/cutl/details/boost/implicit_cast.hpp b/cutl/details/boost/implicit_cast.hpp
new file mode 100644
index 0000000..91f6870
--- /dev/null
+++ b/cutl/details/boost/implicit_cast.hpp
@@ -0,0 +1,29 @@
+// Copyright David Abrahams 2003.
+// 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)
+#ifndef IMPLICIT_CAST_DWA200356_HPP
+# define IMPLICIT_CAST_DWA200356_HPP
+
+# include <cutl/details/boost/mpl/identity.hpp>
+
+namespace cutl_details_boost {
+
+// implementation originally suggested by C. Green in
+// http://lists.boost.org/MailArchives/boost/msg00886.php
+
+// The use of identity creates a non-deduced form, so that the
+// explicit template argument must be supplied
+template <typename T>
+inline T implicit_cast (typename mpl::identity<T>::type x) {
+ return x;
+}
+
+// incomplete return type now is here
+//template <typename T>
+//void implicit_cast (...);
+
+} // namespace cutl_details_boost
+
+
+#endif // IMPLICIT_CAST_DWA200356_HPP