00001 // +-------------------------------------------------------------------------+ 00002 // | I__n__t__e__L__i__b 0.6.10 development | 00003 // | Copyright (c) Andrey Vikt. Stolyarov <crocodil_AT_croco.net> 2000-2007. | 00004 // | | 00005 // | This is free software. The library part is available under | 00006 // | GNU LESSER GENERAL PUBLIC LICENSE v.2.1. | 00007 // | GNU LGPL v2.1 is found in docs/gnu_gpl2.txt, or at http://www.gnu.org | 00008 // | Please see also docs/readme.txt and visit http://www.intelib.org | 00009 // | | 00010 // | !!! THERE IS NO WARRANTY OF ANY KIND, NEITHER EXPRESSED NOR IMPLIED !!! | 00011 // +-------------------------------------------------------------------------+ 00012 00013 00014 00015 00022 #ifndef INTELIB_SCHXVAR_HPP_SENTRY 00023 #define INTELIB_SCHXVAR_HPP_SENTRY 00024 00025 #include "../genlisp/extvar.hpp" 00026 #include "schsymb.hpp" 00027 00029 00040 class SchExtvarConstructor { 00041 public: 00042 template <class Tt> SReference operator&(Tt &var) 00043 { 00044 SchSymbol symb("#<-IA->", new SExpressionIndirectAccessor); 00045 return SReference(symb, new SExpressionIndirectTemplate<Tt>(var)); 00046 } 00047 }; 00048 00049 00050 #endif