Code::Blocks Forums

User forums => Using Code::Blocks => Topic started by: OverlordManny on November 01, 2017, 07:58:37 am

Title: Not sure if this is a bug in the parser or not
Post by: OverlordManny on November 01, 2017, 07:58:37 am
Using CodeBlocks 16.01 with c++11 flags I found that when making an alias of a nested template that the following code block gets placed in namespace std.

For example:

Code
Using Foo = std::vector<std::pair<int, int>>;

struct Bar
{
    public:
        Bar(const int& i) : m_int(i)
        {
              // code here
        }

        // members here
        int m_int;
};

The parser puts the struct named Bar into the std namespace. The following blocks however seem to parse correctly.

Is this irregular behavior? I've worked around it by aliasing the inner template first then used that alias in the outer template.
Title: Re: Not sure if this is a bug in the parser or not
Post by: oBFusCATed on November 01, 2017, 09:07:45 am
Probably it is normal. Our parser is not c++>=11 ready. It doesn't understand all/most new constructs, so it is easy for it to get confused.

If you can provide a minimal standalone sample without includes it might be helpful. Open a ticket on sf.net, so it won't get lost.