Line data Source code
1 : // Copyright David Abrahams 2003. 2 : // Distributed under the Boost Software License, Version 1.0. (See 3 : // accompanying file LICENSE_1_0.txt or copy at 4 : // http://www.boost.org/LICENSE_1_0.txt) 5 : #ifndef IMPLICIT_CAST_DWA200356_HPP 6 : # define IMPLICIT_CAST_DWA200356_HPP 7 : 8 : namespace boost { 9 : 10 : namespace detail { 11 : 12 : template<class T> struct icast_identity 13 : { 14 : typedef T type; 15 : }; 16 : 17 : } // namespace detail 18 : 19 : // implementation originally suggested by C. Green in 20 : // http://lists.boost.org/MailArchives/boost/msg00886.php 21 : 22 : // The use of identity creates a non-deduced form, so that the 23 : // explicit template argument must be supplied 24 : template <typename T> 25 0 : inline T implicit_cast (typename boost::detail::icast_identity<T>::type x) { 26 : return x; 27 : } 28 : 29 : // incomplete return type now is here 30 : //template <typename T> 31 : //void implicit_cast (...); 32 : 33 : } // namespace boost 34 : 35 : 36 : #endif // IMPLICIT_CAST_DWA200356_HPP