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

has_bit_and_assign

Boost , Chapter 1. Boost.TypeTraits , Alphabetical 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
template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
struct has_bit_and_assign : public true_type-or-false_type {};

Наследие: Если (i) lhs тип Lhs и rhs тип Rhs может быть использован в экспрессии lhs>>>>>>>>>>>3>>>>.

Поведение по умолчанию (Ret=dont_care) не должно проверять значение возврата бинарных оператор&=. Если Ret отличается от по умолчанию dont_care тип, значение возврата проверяется как конвертируемое в Ret. Ret означает, что значение возврата оператора может быть использовано в качестве аргумента для функции, ожидающей Ret:

void f(Ret);
Lhs lhs;
Rhs rhs;
f(lhs&=rhs); // is valid if has_bit_and_assign<Lhs, Rhs, Ret>::value==true

Если Ret=void, то тип возврата проверяется точно на void.

>3>>>>>>>3>>>>3>>>3>>>3>>>3>>>3>>>>3>>>3>>>3>>>3>>>37><>1>>>>>3>>>>>3>>>>>3>>>>>>>>

Совместимость компилятора: Требуется работать SFINAE (т.е. BOOST_NO_SFINAE не установлен). Только меньшинство довольно старых компиляторов не поддерживают это.

Примеры:

has_bit_and_assign<Lhs,Rhs,Ret>:: value_type является типом bool.

has_bit_and_assign<Lhs,Rhs,Ret>:: value является bool интегральное постоянное выражение.

has_bit_and_assign<int>:: value является bool интегральное постоянное выражение, которое оценивает до правда.

has_bit_and_assign<long> наследует от true_type.

has_bit_and_assign<int, int,int> наследует от true_type.

has_bit_and_assign<constint, int> наследует от false_type.

has_bit_and_assign<int,дп,bool> наследует от false_type.

has_bit_and_assign<int, int,std::string> наследует от false_type.

См. также: Оператор Тип Трайты

Знания:

  • Эта черта не может определить, является ли бинарный оператор&= публичным или нет: если оператор&= определяется как частный член Lhs затем мгновенный has_bit_and_assign<Lhs<>> будет производить ошибку компилятора. По этой причине has_bit_and_assign не может быть использован для определения того, имеет ли тип публичный оператор&= или нет.
    структура A { частный: void оператор&=(const A>>>>>>>>>>>
  • Существует проблема, если оператор существует только для типа A и B конвертируется в A. В этом случае компилятор сообщит о двусмысленной перегрузке. >>>>оператор>>>>17>&>>>>>>>>>>>>>>>>>>>>>2>>>>>>>>>>>>>>>>>>>
  • Существует проблема при применении этой черты к классам шаблонов.>>>>>>>>>>2>>>>2>>>2>>2>2>>2>2>2>>
  • volatile квалификационный рейтинг не обрабатывается должным образом и приведет к неопределенному поведению

PrevUpHomeNext

Статья has_bit_and_assign раздела Chapter 1. Boost.TypeTraits Alphabetical Reference может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

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