Ignore:
Timestamp:
Jun 5, 2008, 10:04:39 PM (16 years ago)
Author:
dai_9181
Message:

ジェネリッククラスの型パラメータに値型が指定されたときに限り、テンプレート展開を行うようにした。

TODO: libファイルを跨ってテンプレート展開ができていないため、ソースコード管理部分に手を加える必要あり。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/ab_common/include/Lexical/Type.h

    r603 r632  
    136136    void PtrLevelDown(){
    137137        PTR_LEVEL_DOWN( basicType );
     138    }
     139    void SetPtrLevel( int level )
     140    {
     141        basicType = MAKE_PTR_TYPE( NATURAL_TYPE( basicType ), level );
    138142    }
    139143
     
    166170    bool IsReal() const;
    167171    bool Is64() const;
     172    bool IsValueType() const;
    168173    bool IsProcPtr() const;
    169174    bool IsStruct() const;
     
    233238    static int GetBasicTypeFromSimpleName( const char *variable );
    234239};
    235 typedef std::vector<Type> Types;
     240
     241class Types
     242    : public std::vector<Type>
     243{
     244    // XMLシリアライズ用
     245private:
     246    friend class boost::serialization::access;
     247    template<class Archive> void serialize(Archive& ar, const unsigned int version)
     248    {
     249        ar & boost::serialization::make_nvp("vector_Type", boost::serialization::base_object<vector<Type>>(*this));
     250    }
     251
     252public:
     253    bool IsEquals( const Types &Types ) const;
     254};
    236255
    237256/*!
Note: See TracChangeset for help on using the changeset viewer.