5

Yazım hataları kullanmadan bir operator member_function_pointer_type() yapmak mümkün mü (yani, üye fonksiyon işaretçisinin satır içi tipini belirterek) mümkün mü? Örneğinoperator member_function_pointer_type() typedef olmadan?

Güvenli Bool deyim uygularken: operatörü bildirirken

class Foo 
{ 
    typedef void (Foo::*bool_type)() const; 
public: 
    operator bool_type() const; 
}; 

doğrudan bool_type türünü yazmak mümkün mü? Öyleyse nasıl?

cevap

1

O bu bir typedef kullanmadan operator bir (isleminden) beyan edemez tek durum gibi görünüyor.

o zaman gayet iyi çalışıyor, başka bir işlev adı veya başka operator x olsaydı:

class Foo 
{ 
    typedef void (Foo::*bool_type)() const; 
public: 
    operator bool_type() const; 

// other syntax 
    void (Foo::* some_func() const)() const; // ok! named function 
    void (Foo::* operator *() const)() const; // ok! operator * 
    void (Foo::* operator() const)() const; // error! typecasting operator 
}; 

Demo.