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

Как сделать один шаблон для разных типов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не работает код http://www.cyberforum.ru/cpp-beginners/thread632692.html
Помогите пожалуйста перепробовал уже все компиляторы ... не хочет запускаться данный код ( думал на visual C++ 6.0 все запустится но все безуспешно( #include <iostream.h> int main() { cout << "Hollo World!\n"; return 0; }
C++ rawurlencode() в С++ Привет всем! Надо срочно пару строк закодировать под C++, но никак не могу найти аналог функций rawurlencode() в С++. Может кто-нить знает алгоритм этой кодировки. Если кто-нить сталкивался с таким, подскажите пожалуйста! http://www.cyberforum.ru/cpp-beginners/thread632689.html
Динамическое изменение консольного окна, с избежанием появления полос прокрутки C++
Здравствуйте, коллеги. Я нуждаюсь в помощи и совете. #include <iostream> #include <windows.h> #include <conio.h> #include <locale> using namespace std; const int WIDTH = 59;
с++ версии выпусков где просмотреть C++
у меня такое дело - хотел с 2010 студии перейти на с++ 6.0 но она виснет странным образом. есть что то поновее чем с++ 6 но без установки дап нет.
C++ Симулятор собеседника? http://www.cyberforum.ru/cpp-beginners/thread632661.html
Ребята, привет. Хочу задать вопрос. Я хочу сделать программу, в которой пишешь например: 1 - программа отвечает 2. Допустим. Вопрос: Как это сделать?.
C++ error C2228: left of '.add' must have class/struct/union type. в чем ошибка? Помогите понять в чем ошибка. Пасиб. #include <iostream.h> class book { private: char name_book; char name_avtor; int number; подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
03.08.2012, 20:42     Как сделать один шаблон для разных типов
Цитата Сообщение от ramybozy Посмотреть сообщение
Осталось выяснить, как все эти случаи умудриться засунуть в один шаблон.
Какие случаи? Здесь нет duck typing. Шаблоны раскрываются на этапе компиляции. Нет перегрузки — получаете сообщение об ошибке:
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
#include <iostream>
 
template <class T>
T foo(const T &x, const T &y)
{
  return x * y;
}
 
class Bar {
  int x;
public:
  Bar(int x_) : x(x_) {}
 
  friend
  std::ostream& operator<<(std::ostream &stream, const Bar &value);
};
 
std::ostream& operator<<(std::ostream &stream, const Bar &value)
{
  return stream << value.x;
}
 
int main(void)
{
  std::cout << foo(2, 3);
  std::cout << foo(Bar(2), Bar(3));
  return 0;
}
Код
prog.cpp: In function ‘T foo(const T&, const T&) [with T = Bar]’:
prog.cpp:26:   instantiated from here
prog.cpp:6: error: no match for ‘operator*’ in ‘x * y’
 
Текущее время: 10:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru