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

is_function

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 T>
struct is_function : public true_type-or-false_type {};

Наследники:Если T является (возможно, cv-квалифицированным) типом функции, то наследуется отtrue_type.Фальшивый_тип. Обратите внимание, что этот шаблон не обнаруживаетуказателей на функцииилиссылок на функции, они обнаруживаютсяis_pointerиis_referenceсоответственно:

typedef int f1();      // f1 is of function type.
typedef int (*f2)();   // f2 is a pointer to a function.
typedef int (&f3)();   // f3 is a reference to a function.

С++ Стандартная ссылка:3.9.2p1 и 8.3.5.

Совместимость компиляторов:Все текущие компиляторы поддерживаются этой чертой.

Заголовок:<#include <boost/type_traits/is_function.hpp>>или<#include<boost/type_traits.hpp>>

Примеры:

<is_function<int(void)>>наследуется от<true_type>.

<is_function<long(double,int)>::type>является типом<true_type>.

<is_function<long(double,int)>::value>является интегральным постоянным выражением, которое оцениваетистинно.

<is_function<long(*)(double,int)>::value>является интегральным постоянным выражением, которое оцениваетложно: Аргументом в данном случае является тип указателя, а не тип функции.

<is_function<long(&)(double,int)>::value>является интегральным постоянным выражением, которое оцениваетложно: Аргументом в данном случае является ссылка на функцию, а не на тип функции.

<is_function<long(MyClass::*)(double,int)>::value>является интегральным постоянным выражением, которое оценивает доложного: Аргумент в данном случае является указателем на функцию члена.

<is_function<T>::value_type>является типом<bool>.

[Tip] Tip

Не путайте типы функций с указателями на функции:

<typedefint f(double);>

определяет тип функции,

<ffoo;>

объявляет прототип для функции типа<f>,

<f* pf= foo;>

<f& fr= foo;>

Заявляет указатель и ссылку на функцию<foo>.

Если вы хотите определить, является ли какой-либо тип указателем на функцию, используйте:

<is_function<remove_pointer<T>::type>::value &&is_pointer<T>::value>

Или для указателей на функции-члены можно просто использоватьis_member_function_pointerнапрямую.


PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 08:43:36/0.0038959980010986/0