title: Is it possible to call templated user-defined conversion operator with explicit template arguments?
body: <p>Lets consider the following code (compiles successfully with <em>clang++ 7.0.0</em>, compiler arguments are <code>-std=c++17 -Wall -Wextra -Werror -pedantic-errors</code>):</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  
  struct Foo
  {
      template &lt;typename Type = void&gt;
      operator int()
      {
          return 42;
      }
  };
  
  
  int main()
  {
      const auto i = Foo{}.operator int();
  
      std::cout &lt;&lt; i &lt;&lt; std::endl;
  }
  </code></pre>
  
  <p>Is it possible to call such templated user-defined conversion operator with explicitly provided template arguments? The naive approach doesn't compile:</p>
  
  <pre><code>const auto i = Foo{}.operator int&lt;bool&gt;();
  </code></pre>