Hacker News new | ask | show | jobs
by stepik777 3179 days ago
> I still chuckle when randos make arguments like "C++ can't be parsed with an LALR parser"

I'm not an expert on parsers but I don't think LALR parser can evaluate constexpr C++ functions which is required for parsing C++.

E.g. in the following code, expression `A<f()>::a * u` will parse either as a variable declaration (int* u) or a multiplication (5 * 5) depending on the value returned by constexpr function f:

template<bool b> class A {};

template<> struct A<true> { typedef int a; };

template<> struct A<false> { static const int a = 5; };

constexpr bool f() { return true; }

const int u = 5;

int main() { A<f()>::a * u; }

1 comments

I think that the OP point is that it doesn't matter much.