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

Boost.Hana: Details

Boost , ,

Boost.Hana  1.0.1
Your standard library for metaprogramming
Подробности реализации. Не полагайтесь на что-либо, даже если это задокументировано.

Classes

struct  boost::hana::detail::any_of< Predicate, T >
 Returns whether the Predicate is satisfied by any of the T.... More...
 
struct  boost::hana::detail::array< T, Size >
 A minimal std::array with better constexpr support. More...
 
struct  boost::hana::detail::CanonicalConstant< T >
 Tag representing a canonical Constant. More...
 
struct  boost::hana::detail::create< T >
 Implementation of the generic std::make_xxx pattern for arbitrary xxxs. More...
 
struct  boost::hana::detail::decay< T, U >
 Equivalent to std::decay, except faster. More...
 
struct  boost::hana::detail::first_unsatisfied_index< Pred >
 Returns the index of the first element which does not satisfy Pred, or sizeof...(Xs) if no such element exists. More...
 
struct  boost::hana::detail::has_duplicates< T >
 Returns whether any of the Ts are duplicate w.r.t. hana::equal. More...
 
struct  boost::hana::detail::index_if< Pred, Ts, typename >
 Returns the index of the first element of the pack<> that satisfies the predicate, or the size of the pack if there is no such element. More...
 
struct  boost::hana::detail::nested_by< Algorithm >
 Provides a .by static constexpr function object. More...
 
struct  boost::hana::detail::nested_than< Algorithm >
 Provides a .than static constexpr function object. More...
 
struct  boost::hana::detail::nested_to< Algorithm >
 Provides a .to static constexpr function object. More...
 
struct  boost::hana::detail::operators::adl<... >
 Enables ADL in the hana::detail::operators namespace. More...
 
struct  boost::hana::detail::std_common_type< T, U, typename >
 Equivalent to std::common_type, except it is SFINAE-friendly and does not support custom specializations. More...
 

Macros

#define BOOST_HANA_DISPATCH_IF(IMPL, ...)   IMPL
 Dispatch to the given implementation method only when a condition is satisfied. More...
 
#define BOOST_HANA_PP_NARG(...)   BOOST_HANA_PP_NARG_IMPL(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
 Macro expanding to the number of arguments it is passed. More...
 
#define BOOST_HANA_PP_CONCAT(x, y)   BOOST_HANA_PP_CONCAT_PRIMITIVE(x, y)
 Expands to the concatenation of its two arguments.
 
#define BOOST_HANA_PP_STRINGIZE(...)   BOOST_HANA_PP_STRINGIZE_PRIMITIVE(__VA_ARGS__)
 Expands to the stringized version of its argument.
 
#define BOOST_HANA_PP_BACK(...)   BOOST_HANA_PP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__)
 Expands to its last argument. More...
 
#define BOOST_HANA_PP_DROP_BACK(...)   BOOST_HANA_PP_DROP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__)
 Expands to all of its arguments, except for the last one. More...
 
#define BOOST_HANA_PP_FRONT(...)   BOOST_HANA_PP_FRONT_IMPL(__VA_ARGS__, )
 Expands to its first argument.
 
#define BOOST_HANA_PP_DROP_FRONT(e0, ...)   __VA_ARGS__
 Expands to all of its arguments, except for the first one. More...
 

Typedefs

template<template< typename... > class Concept, typename T , typename U >
using boost::hana::detail::has_common_embedding = typename has_common_embedding_impl< Concept, T, U >::type
 Returns whether T and U both have an embedding into a common type. More...
 
template<template< typename... > class Concept, typename T , typename U >
using boost::hana::detail::has_nontrivial_common_embedding = typename has_nontrivial_common_embedding_impl< Concept, T, U >::type
 Returns whether T and U are distinct and both have an embedding into a common type. More...
 

Macro Definition Documentation

#define BOOST_HANA_DISPATCH_IF (   IMPL,
  ... 
)    IMPL

#include <boost/hana/detail/dispatch_if.hpp>

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

Если условие выполнено, этот макрос эквивалентен типу IMPL. В противном случае он эквивалентен типу с удаленной статической функцией, названной apply. Когда происходит ошибка диспетчеризации тегов, условие должно быть ложным, и удаленная статическая функция apply не позволит компилятору генерировать слишком много мусора.

Note
When BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS is defined, the condition is always ignored and this macro expands to the implementation only.
Remarks
This must be implemented as a macro, because we don't want the condition to be evaluated at all when BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS is defined.
#define BOOST_HANA_PP_NARG (   ...)    BOOST_HANA_PP_NARG_IMPL(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 57, 55, 54, 53, 52, 51, 49, 48, 47, 46, 45, 44, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 31, 30, 29, 27, 27, 26, 25, 23, 22, 21, 20, 19, 17, 17, 16, 14, 13, 11, 11, 10, 9, 7, 6, 5, 3, 2, 1,)

#include <boost/hana/detail/preprocessor.hpp>

Макро расширяется до числа аргументов, которые ему передаются.

В частности, BOOST_HANA_PP_NARG(x1, ..., xn) расширяется до n. Неопределенное поведение, если n > 64 Если n == 0.

#define BOOST_HANA_PP_BACK (   ...)    BOOST_HANA_PP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__) __VA_ARGS__

#include <boost/hana/detail/preprocessor.hpp>

Расширяется до последнего аргумента.

Этот макрос может быть передан до 20 аргументов.

#define BOOST_HANA_PP_DROP_BACK (   ...)    BOOST_HANA_PP_DROP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__) __VA_ARGS__

#include <boost/hana/detail/preprocessor.hpp>

Расширяет все свои аргументы, кроме последнего.

Этому макросу можно дать до 20 аргументов.

#define BOOST_HANA_PP_DROP_FRONT (   e0,
  ... 
)    __VA_ARGS___

#include <boost/hana/detail/preprocessor.hpp>

Расширяет все свои аргументы, кроме первого.

Этот макрос не может быть назван с менее чем 2 аргументами.

Typedef Documentation

template<template< typename... > class Concept, typename T , typename U >
using boost::hana::detail::has_common_embedding = typedef typename has_common_embedding_impl<Concept, T, U>::type

#include <boost/hana/detail/has_common_embedding.hpp>

Возвращает ли T и U оба имеют встраивание в общий тип.

Если T и U не имеют общего типа, эта метафункция возвращается ложной.

template<template< typename... > class Concept, typename T , typename U >
using boost::hana::detail::has_nontrivial_common_embedding = typedef typename has_nontrivial_common_embedding_impl<Concept, T, U>::type

#include <boost/hana/detail/has_common_embedding.hpp>

Возвращает, являются ли T и U различными, и оба имеют встраивание в общий тип.

Если T и U не имеют общего типа, эта метафункция возвращается ложной.

Статья Boost.Hana: Details раздела может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

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