g++ typedef

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • master123
    New Member
    • Oct 2006
    • 1

    g++ typedef

    Hi everyone

    I have some declaration in public: section of one class like this...

    ----------------------------------
    file "a.h"
    ----------------------------------

    template<class T> class example
    {
    public:
    typedef std::vector <T*> TMem;
    typedef typename TMem::iterator TMemIter;
    typedef typename TMem::const_ite rator TMemConIter;
    typedef typename TMem::size_type TMemSize;
    };


    -------------------------------------------------
    file "b.h"
    ---------------------------------------------------

    #include "a.h"
    .............
    ..............
    func()
    {
    for (TMemConIter iterMemb = iMem.begin (); iterMemb != iMem.end (); iterMemb++)

    }
    ........
    ........
    ..........
    i compile this with g++ compiler and gets error

    `TMemConIter' undeclared (first use this function)"

    Can anybody help please ?
  • zahidkhan
    New Member
    • Sep 2006
    • 22

    #2
    Originally posted by master123
    Hi everyone

    I have some declaration in public: section of one class like this...

    ----------------------------------
    file "a.h"
    ----------------------------------

    template<class T> class example
    {
    public:
    typedef std::vector <T*> TMem;
    typedef typename TMem::iterator TMemIter;
    typedef typename TMem::const_ite rator TMemConIter;
    typedef typename TMem::size_type TMemSize;
    };


    -------------------------------------------------
    file "b.h"
    ---------------------------------------------------

    #include "a.h"
    .............
    ..............
    func()
    {
    for (TMemConIter iterMemb = iMem.begin (); iterMemb != iMem.end (); iterMemb++)

    }
    ........
    ........
    ..........
    i compile this with g++ compiler and gets error

    `TMemConIter' undeclared (first use this function)"

    Can anybody help please ?

    TMemConIter is a type inside the scope of class example
    so you can access it only using class name :: typedef name


    like example<int>::T MemConIter

    Comment

    Working...