apply_operation.hpp

Go to the documentation of this file.
00001 /*
00002     Copyright 2005-2007 Adobe Systems Incorporated
00003    
00004     Use, modification and distribution are subject to the Boost Software License,
00005     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
00006     http://www.boost.org/LICENSE_1_0.txt).
00007 
00008     See http://opensource.adobe.com/gil for most recent version including documentation.
00009 */
00010 
00011 /*************************************************************************************************/
00012 
00013 #ifndef GIL_APPLY_OPERATION_HPP
00014 #define GIL_APPLY_OPERATION_HPP
00015 
00024 
00025 #include "apply_operation_base.hpp"
00026 #include "variant.hpp"
00027 
00028 #ifndef GIL_REDUCE_CODE_BLOAT
00029 
00030 namespace boost { namespace gil {
00031 
00034 template <typename Types, typename UnaryOp> GIL_FORCEINLINE
00035 typename UnaryOp::result_type apply_operation(variant<Types>& arg, UnaryOp op) {
00036     return apply_operation_base<Types>(arg._bits, arg._index ,op);
00037 }
00038 
00041 template <typename Types, typename UnaryOp> GIL_FORCEINLINE
00042 typename UnaryOp::result_type apply_operation(const variant<Types>& arg, UnaryOp op) {
00043     return apply_operation_basec<Types>(arg._bits, arg._index ,op);
00044 }
00045 
00048 template <typename Types1, typename Types2, typename BinaryOp> GIL_FORCEINLINE
00049 typename BinaryOp::result_type apply_operation(const variant<Types1>& arg1, const variant<Types2>& arg2, BinaryOp op) {    
00050     return apply_operation_base<Types1,Types2>(arg1._bits, arg1._index, arg2._bits, arg2._index, op);
00051 }
00052 
00053 } }  // namespace boost::gil
00054 
00055 #else
00056    
00057 #include "reduce.hpp"
00058 
00059 #endif
00060 
00061 #endif

Generated on Sat May 2 13:50:13 2009 for Generic Image Library by  doxygen 1.5.6