stlab.adobe.com Adobe Systems Incorporated

sheet.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_SHEET_HPP
00010 #define ADOBE_SHEET_HPP
00011 
00012 /*************************************************************************************************/
00013 
00014 #include <adobe/config.hpp>
00015 
00016 /*************************************************************************************************/
00017 
00018 namespace adobe {
00019 
00020 /*************************************************************************************************/
00021 
00022 #ifdef ADOBE_CONCEPTS
00023 
00024 /*************************************************************************************************/
00025 
00026 auto concept BasicSheetConcept<typename T> {};
00027 
00028 /*************************************************************************************************/
00029 
00030 auto concept SheetConcept<typename T> : BasicSheetConcept<T>
00031 {
00032     void touch(T& t, const name_t*, const name_t*);
00033 };
00034 
00035 /*************************************************************************************************/
00036 
00037 auto concept SheetMFConcept<typename T> : BasicSheetConcept<T>
00038 {
00039     void T::touch(const name_t*, const name_t*);
00040 };
00041 
00042 /*************************************************************************************************/
00043 
00044 template <SheetMFConcept T> 
00045 concept_map SheetConcept<T> 
00046 {
00047     inline void touch(T& t, const name_t* x, const name_t* y)
00048     {
00049         t.touch(x, y);
00050     }
00051 };
00052 
00053 /*************************************************************************************************/
00054 
00055 template <BasicSheetConcept T>
00056 concept_map BasicSheetConcept<boost::reference_wrapper<T> > {};
00057 
00058 /*************************************************************************************************/
00059 
00060 template <SheetConcept T>
00061 concept_map SheetConcept<boost::reference_wrapper<T> > 
00062 {
00063     inline void touch(boost::reference_wrapper<T>& r, const name_t* x, const name_t* y)
00064     { 
00065         SheetConcept<T>::touch(static_cast<T&>(r), x, y); 
00066     }
00067 };
00068 
00069 /*************************************************************************************************/
00070 
00071 #endif
00072 
00073 /*************************************************************************************************/
00074 
00075 }
00076 
00077 /*************************************************************************************************/
00078 
00079 #endif

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