| Home | Libraries | People | FAQ | More

## Class stl_type_index

boost::typeindex::stl_type_index

## Synopsis

    // In header: <boost/type_index/stl_type_index.hpp>

    class stl_type_index : public boost::typeindex::type_index_facade< stl_type_index, std::type_info >
    {
    public:
      // types
      typedef std::type_info type_info_t;

      // construct/copy/destruct
      stl_type_index() noexcept;
      stl_type_index(const type_info_t &) noexcept;

      // public member functions
      const type_info_t & type_info() const noexcept;
      const char * raw_name() const noexcept;
      const char * name() const noexcept;
      std::string pretty_name() const;
      std::size_t hash_code() const noexcept;
      bool equal(const stl_type_index &) const noexcept;
      bool before(const stl_type_index &) const noexcept;

      // public static functions
      template<typename T> static stl_type_index type_id() noexcept;
      template<typename T> static stl_type_index type_id_with_cvr() noexcept;
      template<typename T>
        static stl_type_index type_id_runtime(const T &) noexcept;
    };

## Description

This class is a wrapper around std::type_info, that workarounds issues and provides much more rich interface. For description of functions see type_index_facade.

This class requires typeid() to work. For cases when RTTI is disabled see ctti_type_index.

### `stl_type_index` public construct/copy/destruct

1.     stl_type_index() noexcept;

2.     stl_type_index(const type_info_t & data) noexcept;

### `stl_type_index` public member functions

1.     const type_info_t & type_info() const noexcept;

2.     const char * raw_name() const noexcept;

3.     const char * name() const noexcept;

4.     std::string pretty_name() const;

5.     std::size_t hash_code() const noexcept;

6.     bool equal(const stl_type_index & rhs) const noexcept;

7.     bool before(const stl_type_index & rhs) const noexcept;

### `stl_type_index` public static functions

1.     template<typename T> static stl_type_index type_id() noexcept;

2.     template<typename T> static stl_type_index type_id_with_cvr() noexcept;

3.     template<typename T>
         static stl_type_index type_id_runtime(const T & value) noexcept;