title: Is it legal to explicitly specify a generic lambda's operator() template arguments?
body: <p>Is the following C++ code standard compliant?</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  int main()
  {
      [](auto v){ std::cout &lt;&lt; v &lt;&lt; std::endl; }.operator()&lt;int&gt;(42);
  }
  </code></pre>
  
  <p>Both <em>clang++ 3.8.0</em> and <em>g++ 7.2.0</em> <a href="http://coliru.stacked-crooked.com/a/d6534b6f121a1706" rel="noreferrer">compile this code fine</a> (the compiler flags are <code>-std=c++14 -Wall -Wextra -Werror -pedantic-errors</code>).</p>