## Class named_scope_list

boost::log::attributes::named_scope_list — The class implements the list of scopes.

## Synopsis

    // In header: <boost/log/attributes/named_scope.hpp>

    class named_scope_list {
    public:
      // types
      typedef std::allocator< named_scope_entry > allocator_type;          // Allocator type.
      typedef allocator_type::value_type          value_type;
      typedef allocator_type::reference           reference;
      typedef allocator_type::const_reference     const_reference;
      typedef allocator_type::pointer             pointer;
      typedef allocator_type::const_pointer       const_pointer;
      typedef allocator_type::size_type           size_type;
      typedef allocator_type::difference_type     difference_type;
      typedef implementation_defined              const_iterator;
      typedef implementation_defined              iterator;
      typedef implementation_defined              const_reverse_iterator;
      typedef implementation_defined              reverse_iterator;

      // construct/copy/destruct
      named_scope_list();
      named_scope_list(named_scope_list const &);
      named_scope_list & operator=(named_scope_list const &);
      ~named_scope_list();

      // public member functions
      const_iterator begin() const;
      const_iterator end() const;
      const_reverse_iterator rbegin() const;
      const_reverse_iterator rend() const;
      size_type size() const;
      bool empty() const;
      void swap(named_scope_list &);
      const_reference back() const;
      const_reference front() const;
    };

## Description

The scope list provides a read-only access to a doubly-linked list of scopes.

### `named_scope_list` public types

1. typedef implementation_defined const_iterator;

   A constant iterator to the sequence of scopes. Complies to bidirectional iterator requirements.

2. typedef implementation_defined iterator;

   An iterator to the sequence of scopes. Complies to bidirectional iterator requirements.

3. typedef implementation_defined const_reverse_iterator;

   A constant reverse iterator to the sequence of scopes. Complies to bidirectional iterator requirements.

4. typedef implementation_defined reverse_iterator;

   A reverse iterator to the sequence of scopes. Complies to bidirectional iterator requirements.

### `named_scope_list` public construct/copy/destruct

1.     named_scope_list();

   Default constructor

   Postconditions: | `empty() == true`

2.     named_scope_list(named_scope_list const & that);

   Copy constructor

   Postconditions: | `std::equal(begin(), end(), that.begin()) == true`

3.     named_scope_list & operator=(named_scope_list const & that);

   Assignment operator

   Postconditions: | `std::equal(begin(), end(), that.begin()) == true`

4.     ~named_scope_list();

   Destructor. Destroys the stored entries.

### `named_scope_list` public member functions

1.     const_iterator begin() const;

   Returns: | Constant iterator to the first element of the container.

2.     const_iterator end() const;

   Returns: | Constant iterator to the after-the-last element of the container.

3.     const_reverse_iterator rbegin() const;

   Returns: | Constant iterator to the last element of the container.

4.     const_reverse_iterator rend() const;

   Returns: | Constant iterator to the before-the-first element of the container.

5.     size_type size() const;

   Returns: | The number of elements in the container

6.     bool empty() const;

   Returns: | true if the container is empty and false otherwise

7.     void swap(named_scope_list & that);

   Swaps two instances of the container

8.     const_reference back() const;

   Returns: | Last pushed scope entry

9.     const_reference front() const;

   Returns: | First pushed scope entry