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

Struct template constructible_with_allocator_suffix

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Boost.Container Header 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

Struct template constructible_with_allocator_suffix

boost::container::constructible_with_allocator_suffix

Synopsis

// In header: <boost/container/uses_allocator.hpp>
template<typename T> 
struct constructible_with_allocator_suffix {
  // public data members
  static const bool value;
};

Description

Замечание: если конструируемая специализация_with_allocator_suffix:: значение истинно, указывает на то, что T может быть построен с помощью распределителя в качестве последнего аргумента конструктора. В идеале все конструкторы T (включая конструкторы копирования и перемещения) должны иметь вариант, который принимает окончательный аргумент типа allocator_type.

Требуется: если конструируемая специализация_with_allocator_suffix:: значение истинно, T должна иметь вложенный тип, allocator_type и по меньшей мере один конструктор, для которого allocator_type является последним параметром. Если не все конструкторы T могут быть вызваны с окончательным аргументом типа allocator_type, и если T используется в контексте, где контейнер должен вызвать такого конструктора, то программа плохо сформирована.

<template <class T, class Allocator = allocator<T> > class Z { public: typedef Allocator allocator_type;>

<// Default constructor with optional allocator suffix Z(const allocator_type& a = allocator_type());>

<// Copy constructor and allocator-extended copy constructor Z(const Z& zz); Z(const Z& zz, const allocator_type& a); };>

<// Specialize trait for class template Z template <class T, class Allocator = allocator<T> > structconstructible_with_allocator_suffix<Z<T,Allocator> > { static const bool value = true; };>

Примечание: Эта черта является обходным путем, вдохновленным "N2554: Модель со скобками (Rev 2)" (Пабло Гальперн, 2008-02-29) для обратного переноса модели с масштабируемым распределением на C++03, поскольку в C++03 нет механизма для обнаружения, может ли тип быть построен из произвольных аргументов. Приложения, нацеленные на переносимость с несколькими компиляторами, всегда должны определять эту черту.

В соответствии с компиляторами C++11 или компиляторами, поддерживающими выражения SFINAE (когда BOOST_NO_SFINAE_EXPR НЕ определен), эта черта игнорируется, и правила C++11 будут использоваться для определения того, должен ли тип быть построен с аргументами суффикса или префикса распределителя.


PrevUpHomeNext

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




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



:: Главная :: Boost.Container Header Reference ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 19:47:58/0.0063140392303467/0