Всем привет.
Есть такой класс:
class message
{
public:
typedef struct{ typedef enum{ failed, succeed } value_t; } status;
typedef status::value_t status_t;
void set_status( const status_t status ) { status_ = status; }
status_t get_status() { return status_; }
private:
status_t status_;
};
status'овая фитча добавлена чтобы можно было использовать так:
int main()
{
message msg;
// some operations
msg.set_status( msg::status::succeed );
}
Вопрос: Можно сделать это:
typedef struct{ typedef enum{ failed, succeed } value_t; } status;
typedef status::value_t status_t;
проще?
Спасибо!
добавил разметку
Здравствуйте, cppuser, Вы писали:
C>Всем привет.
C>Вопрос: Можно сделать это:
C> typedef struct{ typedef enum{ failed, succeed } value_t; } status;
C> typedef status::value_t status_t;
C>проще?
enum class из С++11 ?
http://www.cprogramming.com/c++11/c++11-nullptr-strongly-typed-enum-class.html
Здравствуйте, MT-Wizard, Вы писали:
MW>Здравствуйте, cppuser, Вы писали:
C>>Всем привет.
C>>Вопрос: Можно сделать это:
C>> typedef struct{ typedef enum{ failed, succeed } value_t; } status;
C>> typedef status::value_t status_t;
C>>проще?
MW>enum class из С++11 ?
MW>http://www.cprogramming.com/c++11/c++11-nullptr-strongly-typed-enum-class.html
Да, конечно. Но, compiler пока не поддерживает с++11
Здравствуйте, cppuser, Вы писали:
C>Вопрос: Можно сделать это:
C> typedef struct{ typedef enum{ failed, succeed } value_t; } status;
C>проще?
Можно без typedef сделать. Будет на 2 слова меньше
Здравствуйте, cppuser, Вы писали:
C>Вопрос: Можно сделать это:
C> typedef struct{ typedef enum{ failed, succeed } value_t; } status;
C> typedef status::value_t status_t;
C>проще?
right_enum?
Здравствуйте, flаt, Вы писали:
F>Здравствуйте, cppuser, Вы писали:
C>>Вопрос: Можно сделать это:
C>> typedef struct{ typedef enum{ failed, succeed } value_t; } status;
C>> typedef status::value_t status_t;
C>>проще?
F>right_enum?
То что надо!