add constructor to templated class
<p>I have a templated class holding a value. Is it possible to add a constructor to the class to allow implicit conversion like in the example below?</p>

<p>Or is there a better way to do this?</p>

<pre><code>#include &lt;string&gt;

template&lt;typename T&gt;
class Value
{
  public:
    Value(const T&amp; value) : m_value(value) { };
  private:
    T m_value;
};

// I thought adding something like this would do the trick but it does not work:
/*
template&lt;&gt;
class Value&lt;std::string&gt;
{
  public:
    Value(const char *sz) : m_value(sz) { };
}
*/

void f(const Value&lt;std::string&gt; &amp;s)
{
}

int main()
{
  f(std::string("hello"));

  // I want to have this working:
  f("hello");
}
</code></pre>
