93 / 91 / 62
Регистрация: 23.11.2013
Сообщений: 242
1

Приведение одного парметра-типа к другому разыменованному парметру-типу (указателю) в шаблонах

27.11.2016, 19:03. Показов 368. Ответов 2

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

Чтобы выше написанное выглядело понятнее расскажу на примере:
C++
1
2
template<typename T, typename V = T*>
void Foo(T var){}
Тут, например, если T==Type, то V=Type*, то есть инстанцируется это как Foo<Type,Type*>(Type).

Можно ли всё это реализовать, чтобы, если T==Type*, то V=Type, Foo<Type*,Type>(Type*), то есть параметр-тип V стал типом на который указывает указатель T.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2016, 19:03
Ответы с готовыми решениями:

Объяснить, что происходит в коде (приведение одного типа указателей к другому?)
char* a = &quot;Hell&quot;; int* b =(int*) a; cout &lt;&lt; *b; Как я понимаю в этом кусочке кода происходит...

Приведение переменной к другому типу
float a = (float)x; // старый стиль float b = static_cast&lt;float&gt;(y); // современный стиль ...

Приведение указателя на void к другому типу?
в поиске смотрел - не помогло! Возникла проблемка: В книге сказано, что указателю на void можно...

Приведение типа к другому классу
Предположим есть класс class A { char a; void foo(); }; можно ли делать так ...

2
15129 / 8125 / 1963
Регистрация: 30.01.2014
Сообщений: 13,809
27.11.2016, 19:16 2
Цитата Сообщение от Lambont Посмотреть сообщение
Можно ли всё это реализовать, чтобы, если T==Type*, то V=Type
C++
1
2
3
4
#include <type_traits>
 
template<typename T, typename V = typename std::remove_pointer<T>::type>
void Foo(T var) {}
Добавлено через 2 минуты
Справка: http://en.cppreference.com/w/c... ype_traits
2
93 / 91 / 62
Регистрация: 23.11.2013
Сообщений: 242
27.11.2016, 20:04  [ТС] 3
Во, именно то, что доктор прописал, спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2016, 20:04

Приведение пользовательского типа к типу int
Написан класс DateTime и перегружены его операторы, в частности ввод/вывод в консоль и в файл. Код:...

Почему код корректро отрабатывает после обращения по разыменованному нулевому указателю?
Добрый вечер, проходил тест по плюсам и столкнулся со следующим кодом. Объясните, пожалуйста,...

Полиморфизм, наследование и приведение экземпляров класса одного к другому
Есть некий класс со своими переменными,его экземпляр занимает какое-то количество памяти....

Приведение к другому типу
здравствуйте, подскажите, пожалуйста, как преобразовывать типы? у меня есть функция void...


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

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

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