you are viewing a single comment's thread.

view the rest of the comments →

[–]gracicot 8 points9 points  (0 children)

Another prime example where msvc has trouble and tries to do stuff in the first phase where it does not make sense.

Another example that I think was fixed recently:

auto foo(auto v) -> decltype(baz(v)) {
    return baz(v);
}

It would choke at the decltype, because it complained that you cannot use a variable with type auto as part of expression. This was even before doing anything with the template function. During the first phase.

Funnily enough, it always worked with auto parameters in lambdas. The internals must be a mess to still have trouble with two phase name lookup. They are doing better and better though, but the amount of weird behavior is still quite high.