The most vexing parse is a counterintuitive form of syntactic ambiguity resolution in the C++ programming language.
In certain situations, the C++ grammar cannot distinguish between the creation of an object parameter and specification of a function's type.
[2] A simple example appears when a functional cast is intended to convert an expression for initializing a variable: Line 2 above is ambiguous.
[4][5] Function types in C++ are usually hidden behind typedefs and typically have an explicit reference or pointer qualifier.
To force the alternate interpretation, the typical technique is a different object creation or conversion syntax.