Archive for the ‘C++’ Category

Появился VS 2010 Beta 2

Wednesday, October 28th, 2009

В отличие от 1-й Beta, этой уже вполне можно пользоваться.
Главное из добавлений:

  • поддержка C++0x: nullptr/nullptr_t, lambda-functions
  • MSBuild 4.0 – теперь IDE не привязана к конкретным инструментам и поностью настраиваема под любые компиляторы с помощью XML

Strongly typed enums in C++0x и их эмуляция в Visual C++

Sunday, August 2nd, 2009

Новый стандарт С++ включает удобную фичу Strongly Typed Enums, также называемую Scoped Enums:

enum class En {
    A = 2
};
En var = En::A;  // вместо En var = A;

Для поддержки этого в текущем компиляторе VC++ можно использовать такие макросы:

#define DEF_ENUM(name) struct enum_##name { enum E
#define END_ENUM(name) ; }; typedef enum_##name::E name; 

DEF_ENUM(En) {
    A = 2
} END_ENUM(En)

En var = En::A;  // вместо En var = A;