universal-references: template <typename T> variant(T && val) {}

it turned out we don't need a separate converting copy ctor (fixes windows compiler)