Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
1

Специализация конструктора:

12.12.2015, 20:45. Показов 1852. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template <int N>
class static_str
{
  char data[N];
}
 
class A
{
  template <typename T> A(T t){};
 
  template <int N> A<static_str<N>>(static_str<N> str){}; // Так нельзя.
};
  template <int N> A::A<static_str<N>>(static_str<N> str){}; // Так нельзя.
А как можно то??? Что я не так делаю?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2015, 20:45
Ответы с готовыми решениями:

В чём отличия конструктора копирования и конструктора перемещения? Где и как их нужно использовать?
Помогите разобраться в копирующем и перемещающем конструкторах. В чём их существенное отличие и...

Специализация шаблона
Пытаюсь специализировать шаблон для типа float, но не получается. В чем проблема? Компилятор:...

Специализация шаблона
Привет, у меня есть вот такой шаблон дерева: template &lt;typename T = int&gt; class Tree{ ...

Явная специализация
// Выдержка из книги Стивен прата С++ // В следующем примере первый вызов функции Swap()...

4
18843 / 9842 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
12.12.2015, 20:51 2
Mirmik, частичная специализация функций в С++ отсутствует. Используй перегрузку.
0
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
12.12.2015, 21:32  [ТС] 3
Ах вот оно в чем дело... Ну, я ведь всегда могу перегрузить функтор ...
0
18843 / 9842 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
12.12.2015, 21:47 4
Цитата Сообщение от Mirmik Посмотреть сообщение
Ну, я ведь всегда могу перегрузить функтор
В данном случае ты сможешь перегрузить конструктор.
C++
1
2
3
4
5
6
7
8
class A
{
  template <typename T> 
  A(T t){}
 
  template <int N> 
  A(static_str<N> str) {}
};
Получишь ровно то, что хотел.
0
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
16.12.2015, 18:57  [ТС] 5
О!, спасибо...
0
16.12.2015, 18:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2015, 18:57
Помогаю со студенческими работами здесь

специализация шаблона
начал разбираться с шаблонами. если есть структура, и одна функция именно с int должна работать по...

Специализация функции
Добра всем! НЕ могу понять в чем ошибка: ||=== Build: Debug in test (compiler: GNU GCC Compiler)...

специализация шаблона
Добрый день! Хотелось бы сделать шаблонную функцию, у которой будет различная реализация в...

Специализация шаблона
Всем доброго вечера! Возникает непонятная ошибка при создании специализации родового класса cl. В...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru