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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Dani
1278 / 636 / 56
Регистрация: 11.08.2011
Сообщений: 2,277
Записей в блоге: 2
Завершенные тесты: 1
#1

Typename и Class - C++

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

Между записью
C++
1
template <class T>
и
C++
1
template <typename T>
нет никакой разницы?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2012, 21:02     Typename и Class
Посмотрите здесь:

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

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

Оператор typename - C++
Здравствуйте. Делал недавно небольшую программку и столкнулся с одной интересной штукой. Суть примерно такая template &lt;class T1, class...

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

Typename в шаблонах класса - C++
В таком шаблоне: template &lt;typename T, int n, bool islong=???&gt; class CounterA{... требуется распознать тип, то есть переменная islong...

Typename перед инстанцированием - C++
В каких случаях перед созданием объекта надо писать typename... И зачем оно там надо? typename hlist::iterator it = cell.begin();

шаблоны и typename в частности - C++
Здравствуйте! Я разбираюсь с ассоциативными контейнерами в с++ - делаю лабораторную по ним функция equal_range() одинакова для set,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
29.08.2012, 21:02     Typename и Class #2
Никакой
-=ЮрА=-
Заблокирован
Автор FAQ
29.08.2012, 21:41     Typename и Class #3
Dani,
Ключевое слово typename появилось сравнительно недавно, поэтому стандарт[1] допускает использование class вместо typename:
http://ru.wikipedia.org/wiki/Шаблоны_C%2B%2B
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
29.08.2012, 21:46     Typename и Class #4
прочти эту ветку
http://stackoverflow.com/questions/2...ate-parameters
KostyaKulakov
Заблокирован
29.08.2012, 22:02     Typename и Class #5
разницы некакой.
DU
1481 / 1057 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
29.08.2012, 23:27     Typename и Class #6
Структуру можно оформить в виде класса с публичными полями и наоборот класс можно замутить с ключевым словом struct и правильно расставить там квалификаторы доступа. за исключением маленькой разницы в правилах наследования от структур и классов и еще кое-каких деталек разницы между классом и структурой нет. однако в одних случаях используют одно, в других - другое. Как правило выбор того или иного ключевого слова делается на основе семантики (предназначения) объявляемого типа данных.
Точно так же выбор typename иди class можно делать в зависимости от предназначения этого агрумента шаблона. Я typename предпочитаю использовать тогда, когда для шаблона подходит любой тип (все встроенные и пользовательские), а class - когда только невстроенные типы. Компилятору вроде бы все равно.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.08.2012, 23:33     Typename и Class #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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2012, 23:40     Typename и Class
Еще ссылки по теме:

Что означает using typename в шаблоне? - C++
template &lt; typename T &gt; class Class_name { public: using value_type = T; ... что произошло в этом месте?...

Visual c++ шаблон template <typename TT> - C++
пытаюсь разобраться с шаблонами, но выдает ошибку я даже не знаю куда смотреть https://github.com/Paladin3by/OOP template &lt;typename...

Для чего нужен шаблон <typename T> - C++
Здравствуйте. template &lt;typename T&gt; T CLAMP(const T&amp; value, const T&amp; low, const T&amp; high) { return (value &lt; low) ? low : ((value...

Тип аргумента template<typename .Args> - C++
Нужно выполнить определенный код при определенном типе аргумента Через шаблон или во время выполнения - не важно, хотя лучше так, как...

typename. Проблемы с вложенными шаблонными типами - C++
Здравствуйте. Реализовываю шаблонный список. /* * List.h */ #pragma once #include &lt;iostream&gt; using namespace std;


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

Или воспользуйтесь поиском по форуму:
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
29.08.2012, 23:40     Typename и Class #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;
    }
}
Yandex
Объявления
29.08.2012, 23:40     Typename и Class
Ответ Создать тему
Опции темы

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