метка времени Unix для повышения:: posix_time:: ptime

Я видел некоторый код, который использовал этот синтаксис:

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)
};   

Это поддерживает порядок, даже если вы пишете некоторые из перечисляемых значений не по порядку.

Подробнее об этой технике можно найти здесь и здесь .

11
задан cube 22 July 2009 в 20:42
поделиться

3 ответа

См. java.lang.annotation.Documented

Указывает, что аннотации с типом должны быть задокументированы с помощью javadoc и подобных инструментов по умолчанию. Этот тип следует использовать для аннотирования объявлений типов, аннотации которых влияют на использование аннотированных элементов их клиентами. Если объявление типа аннотировано с помощью Documented, его аннотации становятся частью общедоступного API аннотированных элементов.

6
ответ дан 3 December 2019 в 05:35
поделиться

Используйте функцию преобразования from_time_t () . time_t - это временная метка UNIX, то есть количество секунд с начала эпохи.

8
ответ дан 3 December 2019 в 05:35
поделиться

Для машины, на которой дата и время ускорения скомпилированы до уровня микросекундного разрешения по умолчанию, попробуйте следующее:

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 коробка.

7
ответ дан 3 December 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: