ossrv_pub/boost_apis/boost/implicit_cast.hpp
changeset 0 e4d67989cc36
equal deleted inserted replaced
-1:000000000000 0:e4d67989cc36
       
     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 # include <boost/mpl/identity.hpp>
       
     9 
       
    10 namespace boost {
       
    11 
       
    12 // implementation originally suggested by C. Green in
       
    13 // http://lists.boost.org/MailArchives/boost/msg00886.php
       
    14 
       
    15 // The use of identity creates a non-deduced form, so that the
       
    16 // explicit template argument must be supplied
       
    17 template <typename T>
       
    18 inline T implicit_cast (typename mpl::identity<T>::type x) {
       
    19     return x;
       
    20 }
       
    21 
       
    22 // incomplete return type now is here
       
    23 //template <typename T>
       
    24 //void implicit_cast (...);
       
    25 
       
    26 
       
    27 } // namespace boost
       
    28 
       
    29 #endif // IMPLICIT_CAST_DWA200356_HPP