title: C++ turn a std::tuple<char, char, char> into a std::string?
body: <p>I am writing a lightweight parser combinator library (akin to Boost::Spirit) as hobby project.</p>
  <p>One thing I'd like to do, is to automatically be able to convert a <code>Result&lt;std::tuple&lt;char&gt;&gt;</code>, <code>Result&lt;std::tuple&lt;char, char&gt;&gt;</code>, etc. into a <code>std::string</code>.</p>
  <p>And similarly, if having e.g. a <code>Result&lt;std::tuple&lt;int, int&gt;&gt;</code> I'd like to be able to convert it to a <code>Result&lt;std::vector&lt;int&gt;&gt;</code> or more generally for any tuple containing zero or more elements of the same type <code>T</code> I'd like to be able to convert it automatically to a <code>Result&lt;Container&lt;T&gt;&gt;</code>.</p>
  <p>How does one tackle something like this? I attempted for instance:</p>
  <pre><code>  template&lt;typename Container&gt;
    Result&lt;decltype(std::make_from_tuple&lt;Container&gt;(std::declval&lt;T&gt;()))&gt; () const {
        Result{Container{std::make_from_tuple&lt;std::initializer_list&lt;typename std::tuple_element&lt;0, T&gt;::type&gt;&gt; (std::get&lt;T&gt;(*this))}};
    }
  
  </code></pre>
  <p>but this does not work, as it turns out that it's not possible to create an initializer list programmatically like this.</p>