присвоение значений типам шаблонов с использованием литералов - PullRequest
0 голосов
/ 18 декабря 2011

Есть ли другой способ присвоения значений членам класса шаблона в конструкторах, кроме использования явной инициализации для базовых типов или приведения?

template <class T>
struct A
{
public:
   T member;

   A() :member(T()) // or :member(static_cast<T>(1.0f))
   {}
};

Я хочу присвоить значение от 1,0 до member в конструкторе. Могу ли я сделать это без кастинга?

Ответы [ 2 ]

2 голосов
/ 18 декабря 2011

Да, используйте целое число, которое можно неявно преобразовать в любой числовой тип:

template <class T>
struct A
{
public:
   T member;

   A() : member(1)
   {}
};

int main()
{
  A<int> a1;
  A<double> a2;
  A<float> a3; 
  return 0;
}
0 голосов
/ 18 декабря 2011

Что не так с этим:

A() :member(1)
{}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...