構築、破棄、コピー
空のコンテナー・コンストラクター
concurrent_bounded_queue(); explicit concurrent_bounded_queue( const allocator_type& alloc );無限のキャパシティー値で空の
concurrent_bounded_queueを構築します。利用可能であれば、アロケーターallocを使用してメモリーを割り当てます。
要素のシーケンスから構築
template <typename InputIterator> concurrent_bounded_queue( InputIterator first, InputIterator last, const allocator_type& alloc = allocator_type() );アロケーター
allocを使用してメモリーを割り当て、半開区間[first, last)のすべての要素を含む無制限の容量を持つconcurrent_bounded_queueを構築します。要件:
InputIteratorタイプは、ISO C++ 標準の[input.iterators]セクションの InputIterator 要件を満たしている必要があります。concurrent_bounded_queue( std::initializer_list<value_type> init, const allocator_type& alloc = allocator_type() );
concurrent_bounded_queue(init.begin(), init.end(), alloc)と等価です。
コンストラクターをコピー
concurrent_bounded_queue( const concurrent_bounded_queue& other ); concurrent_bounded_queue( const concurrent_bounded_queue& other, const allocator_type& alloc );
otherのコピーを作成します。アロケーター引数が指定されていない場合、
std::allocator_traits<allocator_type>::select_on_container_copy_construction(other.get_allocator())で取得できます。
otherとの同時操作が行われると動作は未定義です。
ムーブ・コンストラクター
concurrent_bounded_queue( concurrent_bounded_queue&& other ); concurrent_bounded_queue( concurrent_bounded_queue&& other, const allocator_type& alloc );ムーブ・セマンティクスを使用して、
otherの内容でconcurrent_bounded_queueを作成します。
otherは有効のままですが、未指定の状態となります。アロケーター引数が指定されていない場合、
std::move(other.get_allocator())で取得できます。
otherとの同時操作が行われると動作は未定義です。
デストラクター
~concurrent_bounded_queue();
concurrent_bounded_queueを破棄します。ストアされた要素のデストラクターを呼び出してストレージの割り当てを解除します。
otherとの同時操作が行われると動作は未定義です。
代入操作
concurrent_bounded_queue& operator=( const concurrent_bounded_queue& other );
*thisのすべての要素をotherの要素をコピーして置き換えます。
std::allocator_traits<allocator_type>::propagate_on_container_copy_assignment::valueがtrueの場合、アロケーターのコピーを割り当てます。
*thisとotherの同時操作が行われると動作は未定義です。戻り値:
*thisへの参照を返します。concurrent_bounded_queue& operator=( concurrent_bounded_queue&& other );
*thisのすべての要素を、ムーブ・セマンティクスによってotherの要素で置き換えます。
otherは有効のままですが、未指定の状態となります。
std::allocator_traits<allocator_type>::propagate_on_container_move_assignment::valueがtrueの場合、アロケーターの要素を移動して割り当てます。
*thisとotherの同時操作が行われると動作は未定義です。戻り値:
*thisへの参照を返します。concurrent_bounded_queue& operator=( std::initializer_list<value_type> init );
*thisのすべての要素をinitの要素して置き換えます。
*thisとの同時操作が行われると動作は未定義です。戻り値:
*thisへの参照を返します。
代入
template <typename InputIterator> void assign( InputIterator first, InputIterator last );
*thisのすべての要素を半開区間[first, last)の要素で置き換えます。
*thisとの同時操作が行われると動作は未定義です。要件:
InputIteratorタイプは、ISO C++ 標準の[input.iterators]セクションの InputIterator 要件を満たしている必要があります。void assign( std::initializer_list<value_type> init );
assign(init.begin(), init.end())と等価です。
