?: C++: Шаблон оператора приведения типа

Модератор: Модераторы разделов

gorilych
Сообщения: 14
ОС: Debian sid

?: C++: Шаблон оператора приведения типа

Сообщение gorilych »

Недавно начал изучать C++, появились вопросы, на которые самостоятельно не могу найти ответ.

Есть класс, в котором объявлен шаблон оператора приведения типа:

Код:

class SomeClass{ // ... public: template <typename value_type> operator value_type() const; // Если не шаблон, то было бы так: // operator int() const; }


Вопрос 1:
Синтаксически здесь всё правильно, компилятор не ругается. Тем не менее возникает вопрос, правильно ли компилятор меня понял, не создал ли он шаблон-функцию с именем value_type?

Вопрос 2:
Как явно инстанциировать этот шаблон?
Спасибо сказали:
v04bvs
Сообщения: 636
ОС: Debian GNU/Linux

Re: ?: C++: Шаблон оператора приведения типа

Сообщение v04bvs »

gorilych писал(а):
02.01.2008 11:26
Вопрос 1:
Синтаксически здесь всё правильно, компилятор не ругается. Тем не менее возникает вопрос, правильно ли компилятор меня понял, не создал ли он шаблон-функцию с именем value_type?

Объявление функции выглядит так: тип имя(параметры). В данном случае вы опасаетесь, что создалась функия value_type, которая возвращает тип operator? Вряд ли :-)

Вопрос 2:
Как явно инстанциировать этот шаблон?

SomeClass x;
x.operator double();

например так.
Спасибо сказали:
Аватара пользователя
Skladnoy
Сообщения: 90
ОС: Debian

Re: ?: C++: Шаблон оператора приведения типа

Сообщение Skladnoy »

gorilych писал(а):
02.01.2008 11:26
Вопрос 1:
Синтаксически здесь всё правильно, компилятор не ругается. Тем не менее возникает вопрос, правильно ли компилятор меня понял, не создал ли он шаблон-функцию с именем value_type?


Правильно. Во первых, как указали выше, синтаксис для определения функций другой. Во вторых, сам использую подобный трюк. Работает.
Спасибо сказали:
gorilych
Сообщения: 14
ОС: Debian sid

Re: ?: C++: Шаблон оператора приведения типа

Сообщение gorilych »

Огромное спасибо за ответы.
Спасибо сказали: