Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сформировать строку состоящую из символов http://www.cyberforum.ru/cpp-beginners/thread1215837.html
Здравствуйте , помогите пожалуйста ввести с клавиатуры текст. Сформировать строку состоящую из символов порядковый номер которых в строке кратен 5 или 7. Исходный текст и результаты вывести в...
C++ Разделить числа на три подмножества используя класс Не работает класс Необходимо напечатать сперва все числа из отрезка A, B, потом все числа, меньшие A, потом все числа большие B.Использовать очереди и класс. В первой строке содержится 3 числа . ... 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), каждый элемент... подробнее

Показать сообщение отдельно
Variag
1 / 1 / 0
Регистрация: 21.10.2011
Сообщений: 24
Записей в блоге: 1
25.06.2014, 17:02  [ТС]
Да, наверное, я не совсем точно и не совсем полно указал исходные данные...
Уточню: предложенный Вами метод не будет работать. Связано это с тем, что компилятору же надо оттранслировать обе ветки if-else, а типы T, для которых вся эта бодяга и мутится, фактически делятся на два типа. Допустим, для простоты, что делается это по указанному Вами признаку std::is_integral<T>, хотя это, конечно, не так. Но проблема в том, что для одних типов функция OtherFunction() принимает один аргумент, а для других - два. Текст этих функций будет примерно такой:
C++
1
2
3
4
5
6
7
8
9
template < typename T > void OtherFunction(T t)
{
t.SomeMethod();
}
 
template < typename T > void OtherFunction(T t, int x)
{
t.SomeMethod(x);
}
В принципе, эти две функции OtherFunction(), можно, наверное, вообще опустить, как лишнее промежуточное звено...
Соответственно, здесь будет ошибка компиляции по причинам не соответствия количества аргументов для методов, потому как для одних типов SomeMethod() принимает int в качестве значения, а для других нет. Может так понятнее будет?
Вы меня извините, это мой первый опыт шаблонного программирования, и я пока плоховато мыслю в категориях шаблонов))
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru