#include <string>

template <typename T>
class Test {
 public:
    template< class... Args >
       Test(Args&&... args) : value_ (new T{args...}) {}

 private:
  T* value_;
};

int main() {
  Test<std::string> test1("Text");
  Test<std::string> test2(std::string("Text"));
  return 0;
}
