Форум программистов, компьютерный форум CyberForum.ru

А можно ли темплейту передать число? - C++

Восстановить пароль Регистрация
 
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
12.03.2012, 12:15     А можно ли темплейту передать число? #1
С базовыми типами темплейтов всё понятно. А число можно? И как7
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2012, 12:15     А можно ли темплейту передать число?
Посмотрите здесь:

Какими способами можно передать многомерные массивы в функцию? C++
C++ Можно ли в качестве параметра функции передать другую функцию?
C++ Можно ли передать в функцию массив произвольного размера ?
Как передать в функцию число и структуру побайтно? C++
Как передать 16-ричное число в com-порт? C++
г-но код или можно ли передать метку (от гоуту) в функцию как параметр? C++
C++ Можно ли значение вектора A передать вектору B через swap?
Можно ли передать в функцию указатель на перегруженный оператор? C++
Функции: Как передать в качестве параметра число? C++
Хочу передать в функцию несколько разнотипных массивов. Можно так делать? C++
Можно ли передать в функциию тип? C++
C++ А можно в функцию, или перегруженный оператор передать ссылку на копию?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
12.03.2012, 12:21     А можно ли темплейту передать число? #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
#include <iostream>
#include <typeinfo>
 
template<class T, int N>
class true_typedef
{
public:
   true_typedef(const T& val = T()):value(val)
   {
   }
   const T get() const { return value; }
private:
   T value;
};
 
template<class T, class T2, int N1, int N2>
bool operator == (const true_typedef<T, N1>& lhs, const true_typedef<T2, N2>& rhs)
{
   return typeid(T) == typeid(T2) && N1 == N2 && lhs.get() == rhs.get();
}
 
int main()
{
    std::cout << (true_typedef<int, 1>() == true_typedef<int, 2>()) << std::endl;
    std::cout << (true_typedef<int, 2>() == true_typedef<int, 1>()) << std::endl;
    std::cout << (true_typedef<int, 3>() == true_typedef<int, 3>()) << std::endl;
}
http://liveworkspace.org/code/c6d713...8a7775a8cf6e59
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2012, 07:40  [ТС]     А можно ли темплейту передать число? #3
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
template<class T, int N>
class true_typedef
{
public:
* *true_typedef(const T& val = T()):value(val)
* *{
* *}
* *const T get() const { return value; }
private:
* *T value;
};
А использовать так:
C++
1
d3true_typedef <double, 3>
?
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
16.03.2012, 08:07     А можно ли темплейту передать число? #4
taras atavin, тут идеальным примером будет класс статического массива:
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
33
#include <iostream>
#include <stdexcept>
 
template <typename T, size_t size_>
class Array
{
public:
    T& operator[](size_t i)
    {
        if (i >= size_)
            throw std::out_of_range("");
 
        return data[i];
    }
 
    size_t size() const {
        return size_;
    }
 
private:
    T data[size_];
};
 
int main()
{
    Array<int, 5> array;
 
    for (int i = 0; i < array.size(); ++i)
        array[i] = i + 1;
 
    for (int i = 0; i < array.size(); ++i)
        std::cout << array[i] << " ";
}
Yandex
Объявления
16.03.2012, 08:07     А можно ли темплейту передать число?
Ответ Создать тему
Опции темы

Текущее время: 13:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru