26 / 26 / 17
Регистрация: 29.12.2010
Сообщений: 90
1

Параметры шаблона

30.11.2013, 22:07. Показов 375. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго всем вечера. Вопрос по теории, который не выходит нагуглить.
К примеру, нужно хранить статический массив интов с точно известным количеством параметров, и его нужно передать как параметр шаблонного класса.
У меня, к примеру,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const int s = ...;
 
int Matrix[s][s] = {...};
 
template<int size, int **array>
class MatrixClass
{
public:
    static inline int** func()
    {...};
}
...
int main()
{
     int array[s][s] = MatrixClass<s,Matrix>::func();
     ...
}
Разумеется, это не работает. Подскажите, как правильно двумерный массив задать и передать в параметры шаблонного класса можно?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2013, 22:07
Ответы с готовыми решениями:

параметры шаблона
1) работа с параметрами шаблона; 2) создайте класс для обьекта типа &quot;муз. проигрыватель&quot;.постройте...

Параметры шаблона
как в общем можно объяснить то что находиться в угловых скобках после template, я понимаю что...

Параметры типа класса шаблона
смотрите был такой код в файле заголовочном: template &lt;typename DataType&gt; class CircleList {...

Шаблоны как параметры шаблона
Привет, в книге увидел такой пример template&lt;template&lt;typename T&gt; class x&gt; class y; но из...

3
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
30.11.2013, 22:14 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
 
class Foo
{
public:
    template<class T, int M, int N>
    static void bar(const T (&arr)[M][N])
    {
        for (int i = 0; i < M; ++i)
        {
            for (int j = 0; j < N; ++j)
            {
                std::cout << arr[i][j] << ' ';
            }
            
            std::cout << '\n';
        }
    }
};
 
int main() 
{
    int arr[][2]
    {
        {0, 0},
        {0, 1},
        {1, 0},
        {1, 1}
    };
    
    Foo::bar(arr);
}
1
26 / 26 / 17
Регистрация: 29.12.2010
Сообщений: 90
30.11.2013, 22:37  [ТС] 3
Jupiter, а если мне нужна невоидовская функция? И я собираюсь возвращать матрицу? Тут много проблем тоже у меня
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
30.11.2013, 22:43 4
Nikoys, возвращай через ссылку
C++
1
2
3
4
5
6
7
8
9
10
11
12
static void bar(T (&arr)[M][N])
    {
        for (int i = 0; i < M; ++i)
        {
            for (int j = 0; j < N; ++j)
            {
                arr[i][j] = 100500;
            }
            
            std::cout << '\n';
        }
    }
1
30.11.2013, 22:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2013, 22:43
Помогаю со студенческими работами здесь

Почему шаблонный параметр-шаблон не принимает другие параметры шаблона
Т.е. нельзя вместо template &lt;typename T, template &lt;typename _Ty, class _Aloc = allocator&lt;_Ty&gt; &gt;...

Для использование шаблона переменной требуется список аргументов шаблона
Здравствуйте! Не могу понять в чём проблема. //ALL2.cpp #include &quot;pch.h&quot; #include &lt;iostream&gt;...

Определение метода-шаблона за пределами шаблона класса
День добрый! Разбираюсь в шаблонах, решил копнуть поглубже. Вот пример: template &lt;typename T1&gt;...

Параметры функции: параметры по умолчанию
помогите пожалуйста понять. void foo(int a, int b, int c=1){std::cout &lt;&lt; a &lt;&lt; &quot;\t&quot; &lt;&lt; b &lt;&lt;...

Gtest, доступ к элементам базового класса-шаблона без указания параметров шаблона. баг или фича?
Всем привет. Продолжаю экспертизу gtest/gmock. Количество ошибок и багов зашкаливает. ...

Шаблонные параметры шаблона
Недавно перешел C++ жутко не хватает многих привычных вещей (typedef etc). Вопрос можно ли в C#...


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

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

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