メインページ   名前空間リスト   クラス階層   データ構造リスト   ファイルリスト   名前空間メンバ   データ構造メンバ   ファイルメンバ  

Functions.h

このファイルの解説を見る。
00001 // -*- mode: C++ -*-
00002 #ifndef MIX_FUNCTIONS_H_
00003 #define MIX_FUNCTIONS_H_
00004 
00005 #include "misc.h"
00006 #include "extern.h"
00007 
00008 #include <functional>
00009 
00014 namespace MiX{
00021   template <class Char,class Traits,class XMLTraits>
00022   class NodeTypeChecker
00023     : public MiX_STD::unary_function<const Node<Char,Traits,XMLTraits>*,bool>{
00024   public:
00025     MiX_Template_Typedef(Char,Traits,XMLTraits);
00026   private:
00027     NodeType type_;
00028   public:
00030     NodeTypeChecker(NodeType t) : type_(t){ };
00032     result_type operator()(argument_type node)const{
00033       return (node->getType()==type_);
00034     };
00035   };
00036 
00044   template <class Char,class Traits,class XMLTraits>
00045   class NodeNameChecker : public MiX_STD::unary_function<const Node<Char,Traits,XMLTraits>*,bool>{
00046   public:
00047     MiX_Template_Typedef(Char,Traits,XMLTraits);
00048   private:
00049     string_type name_;
00050   public:
00052     NodeNameChecker(const string_type& name) : name_(name){ };
00054     result_type operator()(argument_type node)const;
00055   };
00056 
00063   template <class Char,class Traits,class XMLTraits>
00064   class NamedNodeFinder
00065     : public boost::compose_f_gx_hx_t<MiX_STD::logical_and<bool>,NodeTypeChecker<Char,Traits,XMLTraits>,NodeNameChecker<Char,Traits,XMLTraits> >{
00066   public:
00067     MiX_Template_Typedef(Char,Traits,XMLTraits);
00068   public:
00075     NamedNodeFinder(NodeType type,const string_type& name)
00076       : boost::compose_f_gx_hx_t<MiX_STD::logical_and<bool>,NodeTypeChecker<Char,Traits,XMLTraits>,NodeNameChecker<Char,Traits,XMLTraits> >(MiX_STD::logical_and<bool>(),NodeTypeChecker<Char,Traits,XMLTraits>(type),NodeNameChecker<Char,Traits,XMLTraits>(name)){
00077     }
00078   };
00079 
00080 }
00081 
00082 #ifndef MIX_FUNCTIONS_CPP_
00083 #include "Functions.cpp"
00084 #endif
00085 
00086 #endif

MiXに対してFri Jun 28 05:13:59 2002に生成されました。 doxygen1.2.11.1 の開発者: Dimitri van Heesch, © 1997-2001