Я видел некоторый код, который использовал этот синтаксис:
char* array[] =
{
[0] = "Hello",
[1] = "World"
};
Где он становится особенно полезным, если вы создаете массив, который использует перечисления в качестве индекса:
enum
{
ERR_OK,
ERR_FAIL,
ERR_MEMORY
};
#define _ITEM(x) [x] = #x
char* array[] =
{
_ITEM(ERR_OK),
_ITEM(ERR_FAIL),
_ITEM(ERR_MEMORY)
};
Это поддерживает порядок, даже если вы пишете некоторые из перечисляемых значений не по порядку.
См. java.lang.annotation.Documented
Указывает, что аннотации с типом должны быть задокументированы с помощью javadoc и подобных инструментов по умолчанию. Этот тип следует использовать для аннотирования объявлений типов, аннотации которых влияют на использование аннотированных элементов их клиентами. Если объявление типа аннотировано с помощью Documented, его аннотации становятся частью общедоступного API аннотированных элементов.
Используйте функцию преобразования from_time_t ()
. time_t
- это временная метка UNIX, то есть количество секунд с начала эпохи.
Для машины, на которой дата и время ускорения скомпилированы до уровня микросекундного разрешения по умолчанию, попробуйте следующее:
double ts = 1250524800.5;
// Use floor() here if seconds are always positive.
time_t secondsSinceEpoch = floor(ts);
long microsecondsSinceSecond =
floor((ts - static_cast<double>(secondsSinceEpoch)) * 1000000);
boost::posix_time::ptime result =
boost::posix_time::from_time_t(secondsSinceEpoch);
boost::posix_time::time_duration fractionalSeconds(0, 0, 0,
microsecondsSinceSecond);
result += fractionalSeconds;
cout << "Time stamp is " << result << endl;
Результатом будет «Отметка времени - 17 августа 2009 г. 16: 00: 00.500000» на моем Linux коробка.