Listing 1

class STLGlob {
    private:
    glob_t pglob_ ;
    STLGlob( const std::string& pattern )
        :
        glob_()
    {
        push_back( pattern ) ;
    }
    void push_back( const std::string& pattern ){
        glob( pattern.c_str() , /* ... */ , &glob_ ) ;
    }
    size_type size(){
        return( pglob_.gl_pathc ) ;
    }
    STLGlob::~STLGlob() {
        globfree( &glob_ ) ;
    }
} ;