Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class template any

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class template any

boost::type_erasure::any

Synopsis

// In header: <boost/type_erasure/placeholder_of.hpp>
template<typename Concept, typename T> 
class any {
public:
  // construct/copy/destruct
  any();
  template<typename U> any(U &&);
  template<typename U, typename Map> any(U &&, const static_binding< Map > &);
  any(const any &);
  template<typename Concept2, typename Tag2> 
    any(const any< Concept2, Tag2 > &);
  template<typename Concept2, typename Tag2, typename Map> 
    any(const any< Concept2, Tag2 > &, const static_binding< Map > &);
  template<typename Concept2, typename Tag2> 
    any(const any< Concept2, Tag2 > &, const binding< Concept > &);
  template<class... U> explicit any(U &&...);
  template<class... U> explicit any(const binding< Concept > &, U &&...);
  any & operator=(const any &);
  template<typename U> any & operator=(const U &);
  ~any();
};

Description

Шаблон классалюбойможет хранить любой объект, который моделирует конкретный объект.Концепция. Он отправляет все функции, определенные концепцией, к содержащемуся типу во время выполнения.

Смотрите также:

concept_of,placeholder_of,any_cast,is_empty,binding_of,typeid_of

Template Parameters

  1. <
    typenameConcept
    >

    Концепция, которую должен моделировать хранимый тип.

  2. typenameT

    Аplaceholderс указанием типа этого.

any public construct/copy/destruct

  1. any();

    Constructs an empty any.

    Except as otherwise noted, all operations on an empty any result in a bad_function_call exception. The copy-constructor of an empty any creates another null any. The destructor of an empty any is a no-op. Comparison operators treat all empty anys as equal. typeid_of applied to an empty any returns typeid(void).

    An any which does not include relaxed in its Concept can never be null.

    Смотрите также:

    is_empty

    Requires:

    relaxed must be in Concept.

    Throws:

    Nothing.
  2. <
    template<typenameU>any(U&&data);
    >

    Построение<any>для хранения копии<data>.<Concept>будет инстанцирован с заполнителем<T>, связанным с U.

    [Note]Примечание

    Этот конструктор никогда не совпадает, если аргумент является<any>,<binding>или<static_binding>.

    Параметры:

    Броски:

    <data>

    [47 Объект для хранения в<any>.

    Требует:

    <U>является моделью<Concept>.

    <U>должен бытьCopyConstructible.

    <Concept>не должен ссылаться на какой-либо необработанный заполнитель, кроме<T>.

    std::bad_alloc или что-либо, что копи-конструктор<U>бросает.
  3. <
    template<typenameU,typenameMap>
     any(U&&data,conststatic_binding<Map>&binding);
    >

    Построение<any>для хранения копии<data>с явно указанными связываниями заполнителя.

    [Note]Примечание

    Этот конструктор никогда не совпадает, если аргумент является<any>.

    Параметры:

    Указывает типы, к которым должны привязываться все заполнители

    <U>

    [1 Объект для хранения в<any>.

    <U>является моделью<Concept>.

    <U>должен бытьCopyConstructible.

    <Map>является MPL-картой с записью для каждого несваренного заполнителя, о котором говорится<Concept>.

    <T>должен<U><U><U>

    Бросок:

    std::bad_alloc или что-либо еще, что копирует конструктор<U>.
  4. any(constany&other);

    Копииany.

    Параметры:

    other

    Сделать копию.

    Требуется:

    Conceptдолжен содержатьконструируемый. (Это включено вcopy_constructible)

    Броски:

    std::bad_alloc или что-то еще, что копирует конструктор содержащегося типа.
  5. <
    template<typenameConcept2,typenameTag2>
     any(constany<Concept2,Tag2>&other);
    >

    Отказы от<any>с более строгими требованиями к<any>с более слабыми требованиями.

    Параметры:

    <other>

    Объект для создания копии.

    Требуется:

    <Concept>должен содержать конструируемый.

    <Concept>не должен относиться к любому невведенному заполнителю, кроме<T>

    После замены<T>на<Tag2>, требования<Concept2>должны быть супермножеством требований<Concept>.

    Броски:

    std::bad_alloc или что-либо еще, что копировальный конструктор содержащегося типа бросает.
  6. template<typenameConcept2,typenameTag2,typenameMap>
     any(constany<Concept2,Tag2>&other,
         conststatic_binding<Map>&binding);

    Конструируетanyиз другогоany.

    Параметры:

    binding

    Указывает отображение между заполнителями, используемыми двумя понятиями.

    other

    Требуется:

    Conceptдолжна содержать конструируемую.

    Mapдолжна быть карта MPL с ключами для всех невводимых заполнителей, используемыхConcept, и значения для соответствующих заполнителей вConcept2

    .

    После замены заполнителей в соответствии сMap, требованияConcept2должны быть супермножеством требованийConcept.

    Броски:

    std::bad_alloc или что-либо еще, что бросает конструктор копии содержащегося типа.
  7. <
    template<typenameConcept2,typenameTag2>
     any(constany<Concept2,Tag2>&other,constbinding<Concept>&binding);
    >

    Конструирует<any>из другого<any>

    [Warning]Предупреждение

    Этот конструктор потенциально опасен, так как он не может проверить, совпадают ли аргументы.

    связывание_(*это) ==<binding>

    Броски:

    Параметры:

    <binding>

    Указывает связывания заполнителей с фактическими типами.

    <other>

    Объект для создания копии.

    Требуется:

    <Concept>должен содержать конструируемый.

    Тип, хранящийся в<other>, должен соответствовать типу, ожидаемому<binding>.

    Пост-условия:

    std::bad_alloc или что-либо еще, что бросает конструктор копии содержащегося типа.
  8. template<class...U>explicitany(U&&...arg);

    Называет конструктор содержащегося типа. Обязательства будут выведены из аргументов.

    [Note]Примечание

    Этот конструктор никогда не выбирается, если вместо него можно назвать любого другого конструктора.

    Параметры:

    arg

    Аргументы должны быть переданы базовому конструктору.

    Требуется:

    Conceptдолжен содержать экземплярконструируемого, который может быть вызван этими аргументами.

    По крайней мере, один из аргументов должен бытьлюбымс тем жеConcept, как это.

    Привязка всех аргументовкдолжна быть одинаковой.

    Броски:

    std::bad_alloc или что-либо еще, что бросает конструктор содержащегося типа.
  9. <
    template<class...U>
     explicitany(constbinding<Concept>&binding,U&&...arg);
    >

    Вызывает конструктор содержащегося типа.

    Параметры:

    <arg><arg>

    Аргументы должны быть переданы базовому конструктору.

    <binding>

    Указывает связывания заполнителей с фактическими типами.

    Требует:

    <Concept>должен содержать соответствующий экземплярконструируемый.

    Содержащийся тип каждого аргумента, который являетсялюбым, должен быть таким же, как тот, который указан<binding>.

    Пост-условия:

    связывание_(*это) ==<binding>

    Броски:

    std::bad_alloc или что-либо, что бросает конструктор содержащегося типа.
  10. <
    any&operator=(constany&other);
    >

    Присваивается<any>

    Если соответствующая перегрузка<assignable>недоступна и<relaxed>находится в<Concept>, возвращается к строительству из<other>.

    Броски:

    Независимо от назначения оператора содержащегося типа бросает. При падении обратно на конструкцию бросает<std::bad_alloc>или что-либо еще конструктор копий содержащегося типа бросает. В этом случае назначение обеспечивает сильную гарантию исключения. При вызове оператора назначения содержащегося типа гарантией исключения является то, что содержит тип.
  11. <
    template<typenameU>any&operator=(constU&other);
    >

    Назначается<any>

    Если соответствующая перегрузка<assignable>недоступна и<relaxed>находится в<Concept>, возвращается к конструкции из<other>.

    Бросает:

    Независимо от назначения оператора содержащегося типа бросает. При падении обратно на конструкцию бросает<std::bad_alloc>или что-либо еще конструктор копий содержащегося типа бросает. В этом случае назначение обеспечивает сильную гарантию исключения. При вызове оператора назначения содержащегося типа гарантией исключения является то, что содержит тип.
  12. <
    ~any();
    >

    Требования:

    <Concept>включаетразрушаемый


PrevUpHomeNext

Статья Class template any раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:05:27/0.031080007553101/1