1
我在書中發現了這段代碼。移動構造函數中的默認參數
template<typename T,typename Container=std::deque<T> >
class stack
{
public:
explicit stack(const Container&);
explicit stack(Container&& = Container()); <<<<<<
//...
}
我想知道什麼時候使用移動構造函數的默認值?
盡我所知,在移動操作中始終存在一個源對象。
是不是有任何默認構造函數? –
這不符合['move構造函數'](http://en.cppreference.com/w/cpp/language/move_constructor)的定義。這只是一個常規的構造函數。移動構造函數不是模板化的,而是以「stack(stack &&)」的形式出現。 –
@FrançoisAndrieux:「...要麼沒有其他參數,要麼其餘參數都有默認值。」 – 6502