1

ここに私の関数テンプレートがあります:

template <typename T>
void f(vector<T> &a) noexcept(noexcept( /* ??? */ ))

=の代入演算子が指定されTている場合、この関数が例外をスローしないように指定したいと思いますnoexcept。これを行う方法はありますか?

4

1 に答える 1

2

これでそれを行うことができます:

template<typename T> 
void f(std::vector<T>& a) noexcept(std::is_nothrow_copy_assignable<T>::value)
{...}

noexceptコピー代入T値自体が宣言されている場合に条件を設定しnoexceptます。move-assigning も考慮して、これをさらに進めることができますT

于 2015-06-07T06:03:15.450 に答える