News:

The new Release 25.03 is out! You can download binaries for Windows and many major Linux distros here .

Main Menu

Not sure if this is a bug in the parser or not

Started by OverlordManny, November 01, 2017, 07:58:37 AM

Previous topic - Next topic

OverlordManny

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:


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.

oBFusCATed

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.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]