Angenommen, ich habe einen Wrappertyp
%Vor% und ich kann nicht einfach X(X&&) = default
, weil ich dort nicht-triviale Sachen machen muss.
Ich möchte jedoch, dass es noexcept
ist, aber nur, wenn T(T&&)
noexcept
ist. Dies kann mit ::std::is_nothrow_move_constructible
getestet werden.
Ich bin nicht in der Lage, eine Version des Konstruktors oder die andere abhängig von constexpr
bedingt zu aktivieren. Ich nehme an, es könnte eine Möglichkeit geben, SFINAE zu verwenden, aber ich weiß nicht, t Sehen Sie, wie man es auf ctors anwendet.
Der noexcept
-Spezifizierer akzeptiert jeden booleschen konstanten Ausdruck, so dass Sie nur Ihre Typeigenschaft dort direkt einchecken können:
Tags und Links c++ noexcept template-meta-programming