title: Function call with template parameter
body: <p>I have written a simple class template:</p>
  <pre><code>template &lt;class T&gt;
  class my_class
  {
  public:
      my_class(T value)
          : my_Value(value)
      {
      }
  private:
      T my_Value;
  };
  </code></pre>
  <p>Now I can use this template in a simple function signature like: <code>my_function(my_class&lt;std::string&gt; my_string)</code></p>
  <p>When I want to call the function I can easily use it:</p>
  <pre><code>auto my_instance = my_class&lt;std::string&gt;(&quot;my value&quot;);
  my_function(my_instance);
  </code></pre>
  <p>But what I want to realize is a function call like this:</p>
  <pre><code>my_function(&quot;my value&quot;)
  </code></pre>
  <p>My class template should implicit do the conversion to the type of the template for me. I think I need some kind of operator overload.</p>
  <p><code>std:optional</code> can do this for example.</p>