Проблема адаптации кода MSVC ++ для C ++ Builder - __declspec (align (n)) - PullRequest
3 голосов
/ 22 февраля 2010

У меня огромная проблема с адаптацией кода в C ++ Builder.

Что является эквивалентом в C ++ Builder для __declspec (align (n))? Я не имею в виду #pragma pack ([show] | [push | pop] [, identifier], n). Мне нужно что-то для макроса.

У меня проблема с принятием кода ниже (особенно для __declspec(align(n))):

#elif defined(_MSC_VER)

#define LJ_NORET    __declspec(noreturn)
#define LJ_ALIGN(n) __declspec(align(n))
#define LJ_INLINE   __inline
#define LJ_AINLINE  __forceinline
#define LJ_NOINLINE __declspec(noinline)
#if defined(_M_IX86)
#define LJ_FASTCALL __fastcall
#endif

static LJ_AINLINE uint32_t lj_ffs(uint32_t x)
{
  uint32_t r; _BitScanForward(&r, x); return r;
}

static LJ_AINLINE uint32_t lj_fls(uint32_t x)
{
  uint32_t r; _BitScanReverse(&r, x); return r;
}

#define lj_bswap(x) (_byteswap_ulong((x)))

#else

1 Ответ

1 голос
/ 22 февраля 2010

Атрибут [[align]] еще не реализован в C ++ Builder. Я не уверен, где это находится в списке приоритетов для поддержки C ++ 0x.

...