В настоящее время один из моих шаблонов классов игрушек имеет два конструктора, которые выглядят очень похожи:
optional(const T& x)
{
construct(x);
}
optional(T&& x)
{
construct(std::move(x));
}
Могу ли я объединить их в единый шаблон конструктора, или это как-то меняет семантику?
template<typename U>
optional(U&& x)
{
construct(std::forward<U>(x));
}