12 / 1 / 1
Регистрация: 08.11.2008
Сообщений: 41
1

Функции, зависимые от параметра шаблона

05.09.2010, 13:04. Показов 849. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Допустим имеется шаблонный класс
C++
1
2
3
4
5
6
7
8
9
template<class T>
class Test
{
  T _t;
public:
  Test(T& t) : _t(t) { } 
  int SomeFunction1() { return 0; }
  int SomeFunction2() { return _t.foo(); }
};
Как сделать так чтобы SomeFunction2() была доступна только когда Т имеет функцию int foo()? А в случае если класс не имеет такую функцию то чтобы функция SomeFunction2() была недоступна.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2010, 13:04
Ответы с готовыми решениями:

Создание шаблона bool-функции, принимающей в качестве параметра экземпляр класса
Добрый день. Никак не получается осилить) Суть: есть классы, у которых есть поле str - массив...

Почему изменение параметра шаблона при вызове функции даёт неверный результат?
Есть такой код: #include &lt;opencv2/highgui/highgui.hpp&gt; #include...

Как передать значение параметра функции одного экзешника значению параметра функции другому екзешнику?
Здравствуйте! Ребята подскажите по такому вопросу. У меня есть консольное приложение в...

Извлечение значения параметра шаблона
Добрый день! Имеется следующий шаблонный тип: using BoardSize = std::size_t; ...

2
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
05.09.2010, 17:32 2
Шаблоны компилируются отдельно для каждого типа, т.е. если в переданом Т не будет определена функция foo(), то компилятор попросту выдаст ошибку при попытке вызова.
0
Эксперт С++
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
05.09.2010, 18:52 3
А ещё точнее, компилятор выдаст ошибку в том случае, если в переданном классе (назовём его Т0) не определена функция foo() и при этом хоть где-нибудь вызывается функция Test<T0>::SomeFunction2(). Если её вызова нет, то всё проканает даже при отсутствии foo(), ибо невызываемые функции в шаблонах не создаются.
0
05.09.2010, 18:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.09.2010, 18:52
Помогаю со студенческими работами здесь

Структура в качестве параметра шаблона
Добрый день, возник вопрос при выполнении КР по программированию: Можно ли передать структуру в...

Объявление параметра типа шаблона дружественным
Объясните, что значит friend Type?

Передача класса в качестве параметра шаблона
Имеется два класса, один это однонаправленный итератор, другой это двунаправленный. Двунаправленный...

Передача параметра из одного шаблона в другой
Нужно передать значение атрибута &quot;name&quot; из шаблона &quot;message&quot; в переменную &quot;messageName&quot; шаблона...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru