Язык программирования C++ для профессионалов


           

в шаблоне типа для класса


template<class T, int sz> class buffer { T v[sz]; // ... };
void f() { buffer<char,20> buf1; buffer<complex,20> buf2; buffer<char,20> buf3; buffer<char,100> buf4;
buf1 = buf2; // ошибка: несоответствие типов buf1 = buf3; // нормально buf1 = buf4; // ошибка: несоответствие типов // ... }
Если в шаблоне типа для класса используются параметры, задающие не типы, возможно появление конструкций, выглядящих двусмысленно:
template<int i> class X { /* ... */ };
void f(int a, int b) { X < a > b>; // Как это понимать: X<a> b и потом // недопустимая лексема, или X< (a>b) >; ? }
Этот пример синтаксически ошибочен, поскольку первая угловая скобка > завершает параметр шаблона. В маловероятном случае, когда вам понадобится параметр шаблона, являющийся выражением "больше чем", используйте скобки: X< (a>b)>.
on_load_lecture()
Дальше »
  Если Вы заметили ошибку - сообщите нам.  
Страницы:
« |
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
вопросы | »
|
учебники
|
для печати и PDA

Курсы | Учебные программы | Учебники | Новости | Форум | Помощь

Телефон: +7 (495) 253-9312, 253-9313, факс: +7 (495) 253-9310, email: info@intuit.ru

© 2003-2007, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование
Содержание  Назад  Вперед