Changeset 737 in dev for trunk/ab5.0


Ignore:
Timestamp:
Aug 27, 2008, 2:34:41 PM (16 years ago)
Author:
イグトランス (egtra)
Message:

[736]でのコミット漏れ、NamespaceScopes.appendの追加。

File:
1 edited

Legend:

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

    r669 r737  
    11#pragma once
    2 
     2#include <algorithm>
    33
    44namespace ActiveBasic{ namespace Common{ namespace Lexical{
     
    1919    NamespaceScopes(){}
    2020    NamespaceScopes( const std::string &namespaceStr );
     21    NamespaceScopes( NamespaceScopes::const_iterator first, NamespaceScopes::const_iterator last )
     22        : std::vector<std::string>( first, last )
     23    {
     24    }
    2125    ~NamespaceScopes(){}
    2226
    2327    NamespaceScopes operator+ ( const NamespaceScopes &namespaceScopes ) const;
     28
     29    void append( const NamespaceScopes &namespaceScopes )
     30    {
     31        insert( end(), namespaceScopes.begin(), namespaceScopes.end() );
     32    }
    2433
    2534    std::string ToString() const
     
    3443            }
    3544            else{
    36                 namespaceStr += ".";
     45                namespaceStr += '.';
    3746            }
    3847
     
    6473            return false;
    6574        }
    66 
    67         for( int i=0; i<(int)baseNamespaceScopes.size(); i++ ){
    68             if( baseNamespaceScopes[i] != entryNamespaceScopes[i] ){
    69                 return false;
    70             }
    71         }
    72         return true;
     75        return std::equal( baseNamespaceScopes.begin(), baseNamespaceScopes.end(), entryNamespaceScopes.begin() );
    7376    }
    7477};
     78
     79inline bool operator ==( const NamespaceScopes &lhs, const NamespaceScopes &rhs )
     80{
     81    return lhs.IsEqual( rhs );
     82}
    7583
    7684class NamespaceScopesCollection : public std::vector<NamespaceScopes>
     
    8795    bool IsExist( const NamespaceScopes &namespaceScopes ) const
    8896    {
    89         const NamespaceScopesCollection &namespaceScopesCollection = *this;
    90         BOOST_FOREACH( const NamespaceScopes &tempNamespaceScopes, namespaceScopesCollection ){
    91             if( tempNamespaceScopes.IsEqual( namespaceScopes ) ){
    92                 return true;
    93             }
    94         }
    95         return false;
     97        return std::find( this->begin(), this->end(), namespaceScopes ) != this->end();
    9698    }
    9799    bool IsExist( const std::string &namespaceStr ) const
     
    102104    bool IsImported( const NamespaceScopes &namespaceScopes ) const
    103105    {
    104         const NamespaceScopesCollection &namespaceScopesCollection = *this;
    105         BOOST_FOREACH( const NamespaceScopes &tempNamespaceScopes, namespaceScopesCollection )
    106         {
    107             if( namespaceScopes.IsEqual( tempNamespaceScopes ) )
    108             {
    109                 return true;
    110             }
    111         }
    112         return false;
     106        return IsExist( namespaceScopes );
    113107    }
    114108
Note: See TracChangeset for help on using the changeset viewer.