| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | //---------------------------------------------------------------------------//// Copyright (c) 2013 Kyle Lutz <kyle.r.lutz@gmail.com>//// 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//// See http://boostorg.github.com/compute for more information.//---------------------------------------------------------------------------//#ifndef BOOST_COMPUTE_FUNCTIONAL_CONVERT_HPP#define BOOST_COMPUTE_FUNCTIONAL_CONVERT_HPPnamespace boost {namespace compute {namespace detail {template<class T, class Arg>struct invoked_convert{    invoked_convert(const Arg &arg)        : m_arg(arg)    {    }    Arg m_arg;};} // end detail namespace/// The \ref convert function converts its argument to type \c T (similar to/// static_cast<T>).////// \see \ref as "as<T>"template<class T>struct convert{    typedef T result_type;    /// \internal_    template<class Arg>    detail::invoked_convert<T, Arg> operator()(const Arg &arg) const    {        return detail::invoked_convert<T, Arg>(arg);    }};} // end compute namespace} // end boost namespace#endif // BOOST_COMPUTE_FUNCTIONAL_CONVERT_HPP
 |