Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
15 / 15 / 3
Регистрация: 04.07.2013
Сообщений: 76
1

Указатель на статический массив как параметр шаблона

30.08.2013, 17:06. Показов 1399. Ответов 1
Метки нет (Все метки)

Добрый день.
Необходимо параметр шаблона сделать указателем и передавать в него указатель на статический массив:
C++
1
2
3
4
5
6
7
8
9
template<size_t *cm>
struct str
{ };
 
int main()
{
     constexpr size_t cm[3] = {0,1,2};    
     str<cm> ob;
}
Компилятор говорит следующее:
C++
1
«cm» is not a valid template argument of type «size_t* {aka unsigned int*}» because «cm» has no linkage
При этом, если передавать в параметр шаблона обычный constexpr указатель, то все компилируется хорошо.
Подскажите, что нужно сделать, чтобы нормально передавать статический массив в шаблон. Заранее спасибо.

Добавлено через 4 минуты
http://publib.boulder.ibm.com/... meters.htm - этот пример у меня тоже не компилируется с той же ошибкой.

Добавлено через 5 минут
Компилятор - gcc 4.7.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2013, 17:06
Ответы с готовыми решениями:

Указатель на статический массив
Есть несколько статических массивов: const char a = { 0, 1, 2, 3 }; const char b = { 4, 5, 6, 7...

Указатель на статический трехмерный массив
Как сделать указатель на статический трехмерный массив? Почему компилятор сам не определяет размер...

Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже -->
Слова английского текста рассортировать по возрастанию количества заданной буквы в слове. Слова с...

создать статический массив строк как статический массив указателей на строки, задание ниже -->
Слова английского текста, начинающиеся с гласных букв, рассортировать в алфавитном порядке по...

1
What a waste!
1606 / 1298 / 180
Регистрация: 21.04.2012
Сообщений: 2,724
30.08.2013, 17:12 2
Gorillych, такой указатель должен иметь external linkage, т.е. так:
C++
1
2
3
4
5
6
7
8
9
10
template<size_t * cm>
struct str
{ };
 
size_t cm[3] = {0,1,2};
 
int main()
{
     str<cm> ob;
}
либо с const\constexpr
C++
1
2
3
4
5
6
7
8
9
10
template<size_t const* cm>
struct str
{ };
 
constexpr size_t cm[3] = {0,1,2};
 
int main()
{
     str<cm> ob;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.08.2013, 17:12

Используя указатель, как параметр цикла, распечатать массив с конца, пропуская элементы, кратные 3
Создать целочисленный массив из 10 элементов. Используя указатель в качестве параметра цикла:...

Быстрее ли вывов функции, переданной через параметр шаблона, чем через простой указатель на функцию?
Здравствуйте! Есть два варианта передачи некоторой переменной типа &quot;указатель на функцию&quot; в...

Как передать параметр типа "указатель на указатель" в функцию?
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; #include...

Передача функции как параметр шаблона
Хочу передавать в шаблон любую функцию без параметров и вызывать ее из него. Как это сделать? ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru