Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
56 / 29 / 13
Регистрация: 24.06.2014
Сообщений: 249
Записей в блоге: 1
1

Шаблон функции с параметрами по умолчанию

01.09.2014, 09:51. Просмотров 1974. Ответов 2
Метки нет (Все метки)


Можно ли создать такую конструкцию?
Если да, можно увидеть пример?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.09.2014, 09:51
Ответы с готовыми решениями:

Шаблон с параметрами по умолчанию
Подскажите пожайлуста,что можно написать в коде вместо многоточий? Шаблон можно переписать с...

Перегрузка функции шаблонами и параметрами по умолчанию
Такая проблема, надо написать header файл и к нему исходник, в которых нужно описать 3 функции и...

Конструктор с параметрами по умолчанию
Возможно ли создать конструктор с параметрами по умолчанию?? а то компилято мне ошибку выдает ...

Конструктор с параметрами по умолчанию
пытаюсь создать класс с параметрами по умолчанию(я да, надеюсь, что я не путаюсь в терминах) ...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
2
Модератор
Эксперт С++
10460 / 8712 / 5263
Регистрация: 18.12.2011
Сообщений: 23,269
01.09.2014, 09:57 2
Лучший ответ Сообщение было отмечено EfimKR как решение

Решение

Похоже, нельзя:
C++
1
2
3
4
5
6
template<int SIZE=0>void f()
{
    int x[SIZE];
    x[0]=1;
    cout<<x[0];
}
error C4519: аргументы шаблона по умолчанию можно использовать только в шаблоне класса
1
В астрале
Эксперт С++
8030 / 4787 / 655
Регистрация: 24.06.2010
Сообщений: 10,558
01.09.2014, 10:07 3
EfimKR, В С++98/03 нельзя. В С++11 можно.

Добавлено через 1 минуту
Но естественно в С++98/03 это ограничение можно обойти просто написав функтор, в котором шаблонные аргументы по умолчанию вполне себе доступны.

Добавлено через 3 минуты
Из стандарта 2003 года 14.1/9

A default template-argument may be specified in a class template declaration or a class template definition.
A default template-argument shall not be specified in a function template declaration or a function template
definition, nor in the template-parameter-list of the definition of a member of a class template. A default
template-argument shall not be specified in a friend template declaration.
Из стандарта 2011 года 14.1/9

A default template-argument may be specified in a template dec-
laration. A default template-argument shall not be specified in the template-parameter-lists of the definition
of a member of a class template that appears outside of the member’s class. A default template-argument
shall not be specified in a friend class template declaration. If a friend function template declaration specifies
a default template-argument, that declaration shall be a definition and shall be the only declaration of the
function template in the translation unit.
P.S, пример:

C++
1
2
3
4
template<typename T = int>
void function()
{
}
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.09.2014, 10:07

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Функция с параметрами по умолчанию
Помогите сделать прогу, Задание 1 (Функция с умалчиваемыми параметрам) Печать фамилии, курса и...

Классы и конструктор по умолчанию/с параметрами
Помогите пожалуйста! Необходимо сконструировать класс с заданным набором свойств. В данном случае,...

Реализовать функции с опциональными параметрами и именованными параметрами
Нужно задачу написать, про ref и out ничего пока не знаю, не понимаю их.. Реализовать функции...

Шаблон с 4-мя параметрами
Добрый вечер. Подскажите как мне сделать шаблонную функцию с четырьмя параметрами. Т.е. должна...


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

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

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