The attached source code demonstrates the regression, or I don't understand C++ any more...
This syntax of the constructor (parentheses vs. braces) determines whether operator() is found correctly. The explicit .operator() call also works. The commented out call compiles fine on GNU g++, so I think the syntax is fine. It constructs a temporary object and immediately calls its operator().
Disable Light Bulbs SETTING
msbuild ErrorsOnly outputs summary
VS2017 C++ project problem
Visual Studio stuck on loading solution