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

Macro BOOST_PROTO_DEFINE_OPERATORS

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

Macro BOOST_PROTO_DEFINE_OPERATORS

BOOST_PROTO_DEFINE_OPERATORS — Defines a complete set of expression template-building operator overloads for use with non-Proto terminal types.

Synopsis

// In header: <boost/proto/operators.hpp>
BOOST_PROTO_DEFINE_OPERATORS(Trait, Domain)

Description

С помощью BOOST_PROTO_DEFINE_OPERATORS() можно ненавязчиво адаптировать существующий (не-Proto) тип к терминалу Proto.

Trait - это название унарной булевой метафункции, которая возвращается истинной для любых типов, которые вы хотели бы рассматривать как терминалы Proto.

Домен - это имя домена Proto, связанного с этими новыми терминалами Proto. Вы можете использовать proto::default_domain для Domain, если вы не хотите связывать эти терминалы с каким-либо доменом.

Пример:

namespace My {
  // A non-Proto terminal type
  struct S {};
  // A unary Boolean metafunction that returns true for type S
  template<typename T> struct IsS : mpl::false_ {};
  template<> struct IsS<S> : mpl::true_ {};
  
  // Make S a Proto terminal non-intrusively by defining the
  // appropriate operator overloads. This should be in the same
  // namespace as S so that these overloads can be found by
  // argument-dependent lookup
  BOOST_PROTO_DEFINE_OPERATORS(IsS, proto::default_domain)
}
int main() {
  My::S s1, s2;
  
  // OK, this builds a Proto expression template:
  s1 + s2; 
}


PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:48:32/0.0051889419555664/1