Форум программистов, компьютерный форум CyberForum.ru

Как определить наличие конструктора с заданными параметрами? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передать код под шаблонную функцию http://www.cyberforum.ru/cpp-beginners/thread1767804.html
Ребят помоги передать код под одну шаблонную функцию У меня сделано через перезагрузку функции Сам код: #pragma hdrstop #pragma argsused #ifdef _WIN32 #include <tchar.h> #else typedef char _TCHAR;
C++ Std::transform Доброе утро! Буду признателен за помощь в следующей проблемке. Я хочу скопировать из multimap в vector через std::transform. std::vector<LoanInfo>temp; std::multimap<UserId,LoanInfo>::size_type num=_lib.count(user.value()); if (num>0) http://www.cyberforum.ru/cpp-beginners/thread1767784.html
Приведение типов умных указателей C++
Добрый день. Реализовал простенький умный указатель с подсчетом ссылок. template<typename object_t> class Ptr { public: typedef object_t object_type;
Передача/возвращение из функции C++
Привет, сейчас читал это. Там парень говорит, что когда мы передаем в функцию, например, так: #include <iostream> #include <conio.h> void func(double var) { ... }
C++ Заменить все числа, меньшие последнего элемента массива, на первый элемент http://www.cyberforum.ru/cpp-beginners/thread1767712.html
Выдает не правильный ответ как на скриншоте, а должен быть как по условию: Дан массив. Заменить все числа, меньшие последнего элемента массива, на первый элемент. #include <iostream> #include <conio.h> #include <time.h> using namespace std; int main(){ const int N=10; int a; int b,i; i=0; srand(time(NULL)); for (int i=0;i<N;i++){
C++ Составить блок-схему по коду Пример кода программы, вообще не понимаю как строить блок схему помогите пожалуйста:help: #include <SoftwareSerial.h> #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); #define RxD 7 #define TxD 8 подробнее

Показать сообщение отдельно
gray_fox
What a waste!
1411 / 1140 / 55
Регистрация: 21.04.2012
Сообщений: 2,362
Завершенные тесты: 3
22.06.2016, 01:10     Как определить наличие конструктора с заданными параметрами?
Цитата Сообщение от O_Q Посмотреть сообщение
Также хочу сразу спросить, можно ли определять существование метода класса с заданным именем и нужными параметрами.
Если с учётом неявных преобразований аргументов и без учёта типа возвращаемого значения, то это можно относительно просто реализовать. Примерно так (с++11, и возможно я тут не учёл все нюансы):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <utility>
#include <type_traits>
 
 
template<typename...>
struct void_type {
 
   using type = void;   
};
 
template<typename ...T>
using void_t = typename void_type<T...>::type;
 
 
template<typename T, typename = void>
struct is_invokable_with_member_function_foo : std::false_type {};
 
template<typename T, typename ...Args>
struct is_invokable_with_member_function_foo<
      T (Args...)
    , void_t<decltype(std::declval<T>().foo(std::declval<Args>()...))>
> : std::true_type {};
http://ideone.com/hzRM78
Вот только надо писать подобное для каждого интересующего названия метода (или навернуть макрос для генерации).
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru