#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;
}
I2luY2x1ZGUgPHN0cmluZz4KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpjbGFzcyBUZXN0IHsKIHB1YmxpYzoKICAgIHRlbXBsYXRlPCBjbGFzcy4uLiBBcmdzID4KICAgICAgIFRlc3QoQXJncyYmLi4uIGFyZ3MpIDogdmFsdWVfIChuZXcgVHthcmdzLi4ufSkge30KCiBwcml2YXRlOgogIFQqIHZhbHVlXzsKfTsKCmludCBtYWluKCkgewogIFRlc3Q8c3RkOjpzdHJpbmc+IHRlc3QxKCJUZXh0Iik7CiAgVGVzdDxzdGQ6OnN0cmluZz4gdGVzdDIoc3RkOjpzdHJpbmcoIlRleHQiKSk7CiAgcmV0dXJuIDA7Cn0K