williamr@2: // Copyright David Abrahams 2003. williamr@2: // Distributed under the Boost Software License, Version 1.0. (See williamr@2: // accompanying file LICENSE_1_0.txt or copy at williamr@2: // http://www.boost.org/LICENSE_1_0.txt) williamr@2: #ifndef IMPLICIT_CAST_DWA200356_HPP williamr@2: # define IMPLICIT_CAST_DWA200356_HPP williamr@2: williamr@2: # include williamr@2: williamr@2: namespace boost { williamr@2: williamr@2: // implementation originally suggested by C. Green in williamr@2: // http://lists.boost.org/MailArchives/boost/msg00886.php williamr@2: williamr@2: // The use of identity creates a non-deduced form, so that the williamr@2: // explicit template argument must be supplied williamr@2: template williamr@2: inline T implicit_cast (typename mpl::identity::type x) { williamr@2: return x; williamr@2: } williamr@2: williamr@2: // incomplete return type now is here williamr@2: //template williamr@2: //void implicit_cast (...); williamr@2: williamr@2: williamr@2: } // namespace boost williamr@2: williamr@2: #endif // IMPLICIT_CAST_DWA200356_HPP