How does this declaration invoke the Most Vexing Parse?
问题 Consider the following program: #include <fstream> struct A {}; int main(int argc, char** argv) { A a(std::fstream(argv[1])); } Clang in C++1y mode reckons that the MVP is invoked such that a is parsed as a function declaration: clang++ -std=c++1y -O3 -Wall -Wextra -pedantic-errors -pthread main.cpp && ./a.out main.cpp:6:8: warning: parentheses were disambiguated as a function declaration [-Wvexing-parse] A a(std::fstream(argv[1])); ^~~~~~~~~~~~~~~~~~~~~~~ main.cpp:6:9: note: add a pair of