типы оператора приведения
От: Аноним  
Дата: 01.12.05 22:33
Оценка:
Стандарт 12.3.2/1

A member function of a class X with a name of the form
conversion-function-id:
operator conversion-type-id

conversion-type-id:
type-specifier-seq conversion-declarator opt

conversion-declarator:
ptr-operator conversion-declarator opt

specifies a conversion from X to the type specified by the conversion-type-id. Such member functions are
called conversion functions. Classes, enumerations, and typedef-names shall not be declared in the
type-specifier-seq.

......


Никак не могу понять смысл выделенного. Получающиеся у меня толкования противоречат моему представлению о предмете. Как правильно перевести?
Re: типы оператора приведения
От: BitField Украина http://lazy-bitfield.blogspot.com
Дата: 02.12.05 07:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Стандарт 12.3.2/1

А>

А> A member function of a class X with a name of the form
А> conversion-function-id:
А> operator conversion-type-id

А> conversion-type-id:
А> type-specifier-seq conversion-declarator opt

А> conversion-declarator:
А> ptr-operator conversion-declarator opt

А>specifies a conversion from X to the type specified by the conversion-type-id. Such member functions are
А>called conversion functions. Classes, enumerations, and typedef-names shall not be declared in the
А>type-specifier-seq.

А>......


А>Никак не могу понять смысл выделенного. Получающиеся у меня толкования противоречат моему представлению о предмете. Как правильно перевести?



Новые классы, перечисления или определения типов не могут быть обьявлены в type-specifier-seq. То есть тип должен быть обьявлен(Хотя-бы предварительно)
Re[2]: типы оператора приведения
От: BitField Украина http://lazy-bitfield.blogspot.com
Дата: 02.12.05 07:41
Оценка:
Здравствуйте, BitField, Вы писали:


BF>Новые классы, перечисления или определения типов не могут быть обьявлены в type-specifier-seq. То есть тип должен быть обьявлен(Хотя-бы предварительно)


То есть ты не можешь написать:


class A
{
public:
  operator enum X { aa, bb } () const;
};

//ты должен писать

class A
{
public:
   enum X { aa, bb};
   operator X() const;
};
Re[3]: типы оператора приведения
От: Аноним  
Дата: 02.12.05 12:38
Оценка:
Здравствуйте, BitField, Вы писали:

BF>Здравствуйте, BitField, Вы писали:



BF>>Новые классы, перечисления или определения типов не могут быть обьявлены в type-specifier-seq. То есть тип должен быть обьявлен(Хотя-бы предварительно)


BF>То есть ты не можешь написать:


BF>

BF>class A
BF>{
BF>public:
BF>  operator enum X { aa, bb } () const;
BF>};

BF>//ты должен писать

BF>class A
BF>{
BF>public:
BF>   enum X { aa, bb};
BF>   operator X() const;
BF>};

BF>


Спасибо, я понял. Ключевое слово declared.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.