stlab.adobe.com Adobe Systems Incorporated

type_functions.hpp

Go to the documentation of this file.
00001 /*
00002     Copyright 2005-2007 Adobe Systems Incorporated
00003     Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt
00004     or a copy at http://stlab.adobe.com/licenses.html)
00005 */
00006 
00007 /*************************************************************************************************/
00008 
00009 #ifndef ADOBE_ITERATOR_TYPE_FUNCTIONS_HPP
00010 #define ADOBE_ITERATOR_TYPE_FUNCTIONS_HPP
00011 
00012 #include <adobe/config.hpp>
00013 
00014 #include <iterator>
00015 
00016 /*************************************************************************************************/
00017 
00018 namespace adobe {
00019 
00020 /*************************************************************************************************/
00021 
00025 #define ADOBE_ITERATOR_TYPE_FUNCTION_BOILERPLATE(type_name) \
00026 template <typename I> /*I models InputIterator*/ \
00027 struct type_name \
00028 { typedef typename std::iterator_traits<I>::type_name type; };
00029 
00030 ADOBE_ITERATOR_TYPE_FUNCTION_BOILERPLATE(difference_type)
00031 ADOBE_ITERATOR_TYPE_FUNCTION_BOILERPLATE(iterator_category)
00032 ADOBE_ITERATOR_TYPE_FUNCTION_BOILERPLATE(value_type)
00033 
00034 #define ADOBE_DIFFERENCE_TYPE(I)   typename adobe::difference_type<I>::type
00035 #define ADOBE_ITERATOR_CATEGORY(I) typename adobe::iterator_category<I>::type
00036 #define ADOBE_VALUE_TYPE(I)        typename adobe::value_type<I>::type
00037 
00039 
00040 /*************************************************************************************************/
00041 
00042 } // namespace adobe
00043 
00044 /*************************************************************************************************/
00045 
00046 #endif
00047 // ADOBE_ITERATOR_DISTANCE_HPP

Copyright © 2006-2007 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google