1402 / 644 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
1

Typename и Class

29.08.2012, 21:02. Показов 3292. Ответов 7
Метки нет (Все метки)

Между записью
C++
1
template <class T>
и
C++
1
template <typename T>
нет никакой разницы?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2012, 21:02
Ответы с готовыми решениями:

В чем отличие typename от class?
Зачем нужно typename В чем отличие от class ?

Шаблоны. Что лучше <class T> или <typename T>?
Одни пишут &lt;class T&gt;, другие &lt;typename T&gt; Какая между ними разница?

Как програмно показать разницу между typename и class в шаблонных классах?
Нужно програмно показать в чем разница между typename и class в шаблонных класах(когда пишем тип...

В чем различие template <typename T> от template <class T> ?
Добрый день ! Заметил в новых книгах применение записи template &lt;typename T&gt; вместо template...

7
2553 / 1318 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
29.08.2012, 21:02 2
Никакой
0
Заблокирован
Автор FAQ
29.08.2012, 21:41 3
Dani,
Ключевое слово typename появилось сравнительно недавно, поэтому стандарт[1] допускает использование class вместо typename:
http://ru.wikipedia.org/wiki/Шаблоны_C%2B%2B
0
555 / 509 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
29.08.2012, 21:46 4
прочти эту ветку
http://stackoverflow.com/quest... parameters
0
Заблокирован
29.08.2012, 22:02 5
разницы некакой.
0
DU
1495 / 1141 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
29.08.2012, 23:27 6
Структуру можно оформить в виде класса с публичными полями и наоборот класс можно замутить с ключевым словом struct и правильно расставить там квалификаторы доступа. за исключением маленькой разницы в правилах наследования от структур и классов и еще кое-каких деталек разницы между классом и структурой нет. однако в одних случаях используют одно, в других - другое. Как правило выбор того или иного ключевого слова делается на основе семантики (предназначения) объявляемого типа данных.
Точно так же выбор typename иди class можно делать в зависимости от предназначения этого агрумента шаблона. Я typename предпочитаю использовать тогда, когда для шаблона подходит любой тип (все встроенные и пользовательские), а class - когда только невстроенные типы. Компилятору вроде бы все равно.
0
Каратель
Эксперт С++
6601 / 4020 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
29.08.2012, 23:33 7
Цитата Сообщение от Dani Посмотреть сообщение
Между записью
C++
1
template <class T>
и
C++
1
template <typename T>
нет никакой разницы?
разница есть только для шаблонного параметра шалона
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <vector>
 
template< typename T, template< typename, typename = std::allocator<T>> class Con>
void foo();
 
//template< typename T, template< typename, typename = std::allocator<T>> typename Con> //error
//void foo()
 
int main()
{
   foo<int, std::vector>();
}
 
template< typename T, template< typename, typename = std::allocator<T>> class Con>
void foo()
{
   Con<T> vec;
}
0
526 / 343 / 12
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
29.08.2012, 23:40 8
typename выполняет специальную функцию в шаблонном программировании, когда требуется явно сказать компилятору, что некоторое выражение именует тип.
Пример:
C++
1
2
3
4
5
6
7
8
template< class T >
void printContainer( T& container )
{
    typedef typename T::iterator container_iterator;
    for ( container_iterator it = container.begin(); it != container.end(); ++it ) {
        Log << *it;
    }
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2012, 23:40

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int')
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i !=...

bad class file: C:Program FilesJavajre1.5.0_02lib t.jar(java/lang/Object.class) class file has wrong version 49.0, should be 48.0
написал тестовый td_jsp.jsp фаил -&gt;&gt; &lt;html&gt; &lt;head&gt;&lt;title&gt;JSP test&lt;/title&gt;&lt;/head&gt; ...

Access97 typename
Привет Алл! У меня вопрос почему функция typename вместо типа string,data, возвращает в access...

typename и NULL
Ребята, выручайте! Есть шаблонный класс template &lt;typename T, ... в одном из методов нужно...

Оператор typename
Здравствуйте. Делал недавно небольшую программку и столкнулся с одной интересной штукой. Суть...

Template<typename T> vs auto
template &lt;typename T&gt; vector&lt;T&gt; my_vec1; vector&lt;auto&gt; my_vec2;Какая разница между содержимым...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.