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

Выбор кода при компиляции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сформировать строку состоящую из символов http://www.cyberforum.ru/cpp-beginners/thread1215837.html
Здравствуйте , помогите пожалуйста ввести с клавиатуры текст. Сформировать строку состоящую из символов порядковый номер которых в строке кратен 5 или 7. Исходный текст и результаты вывести в текстовый файл.
C++ Разделить числа на три подмножества используя класс Не работает класс Необходимо напечатать сперва все числа из отрезка A, B, потом все числа, меньшие A, потом все числа большие B.Использовать очереди и класс. В первой строке содержится 3 числа . Во второй строке содержится N положительных чисел. вход 5 488 894 921 16 973 752 344 выход 752 16 344 921 973 http://www.cyberforum.ru/cpp-beginners/thread1215836.html
C++ Переписать файл целых чисел так, чтобы сначала шли положительные, а потом - отрицательные
Дан файл целых чисел F. Используя вспомогательный файл H переписать компоненты файла F файл G так, чтобы сначала были записаны все положительные числа а потом все отрицательные???????очень нужна помощь
C++ Создать класс "устройство ввода" и унаследовать от него три разных класса
Помогите создать иерархию типов: -Клавишное устройство ввода, имеющие количество клавиш(целое) и название клавиш(строки); -Роликовое устройство ввода, имеющие направление движения ролика(строка) и возможность нажатия(логическое); -Манипулятор типа мышь, имеющий дополнительно стоимость(целое). Классы должны конструкторы, включая конструктор копирования, перезагруженную функцию ввода из потока.
C++ Двумерный массив, сравнение, поиск максимального, замена http://www.cyberforum.ru/cpp-beginners/thread1215825.html
Имеется двумерный массив 6х6. Если все элементы второго столбца равны 1, то заменить максимальный элемент таблицы на 100.
C++ Арифметические выражения в массиве Ну пожалуйста подскажите, нужен код на с++, а знаю только как на паскале, может это вам что-о подскажет Задан массив Х (2n), каждый элемент которого вычисляется а формула. Y (n), каждый элемент которого вычисляется по формуле Y (i) = X (i) + X (i + n), где и изменяется от 1 до n. program asdf; uses crt; const nmax=10; var a,b:array of integer; i,j,n:integer; begin подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
26.06.2014, 11:01     Выбор кода при компиляции
В С++11 можно так же развлечься и без создания структур для поиска. Ну это так, на всякий случай, использовать такое не призываю.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
template<typename T, typename E>
constexpr auto has_function_with_no_arg(T&& obj, const E& e = E()) -> decltype((obj.*e)(), void());
 
template<typename T, typename E>
constexpr auto has_function_with_one_arg(T&& obj, const E& e = E()) -> decltype((obj.*e)(int()), void());
 
template<typename T>
auto SomeFunction(T&& obj, int) -> decltype(has_function_with_no_arg(std::forward<T>(obj), &T::func))
{
   obj.func();
}
 
template<typename T>
auto SomeFunction(T&& obj, int x) -> decltype(has_function_with_one_arg(std::forward<T>(obj), &T::func))
{
   obj.func(x);
}
 
struct A
{
   void func()
   {
      std::cout << "func" << std::endl;
   }
};
 
struct B
{
   void func(int x)
   {
      std::cout << "func(int)" << std::endl;
   }
};
 
int main()
{
   SomeFunction(A(), 1);
   SomeFunction(B(), 1);
}
Добавлено через 12 минут
Ну и конечно можно без усложнений.

C++
1
2
3
4
5
6
7
8
9
10
11
template<typename T>
auto SomeFunction(T&& obj, int) -> decltype(obj.func(), void())
{
   obj.func();
}
 
template<typename T>
auto SomeFunction(T&& obj, int x) -> decltype(obj.func(x), void())
{
   obj.func(x);
}
Однако в отличии от enable_if я не могу здесь придумать как сделать вариант данной функции с понятным сообщением ошибки для всех остальных случаев.
 
Текущее время: 03:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru