Size: a a a

2021 February 26

ДС

Дмитрий Спиридонов... in pro.cxx
Всем привет. Готов кто-нибудь уделить время и рассказать как получить время в с++ в виде форматированной строки. Последнее время стандартов развелось что то вводят но не стандартизируют, что то помечают как устаревшее и в итоге непонятно чем пользоваться.
Остановился на этом
                   auto timenow = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
                   std::ostringstream oss;
                   oss << std::put_time(std::localtime(&timenow), "%Y-%m-%d %H-%M-%S");
                   auto str = oss.str();
но ругается на localtime и put_time не стандартизован. Что есть лучше?
источник

ГH

Гласси Hudobin in pro.cxx
Дмитрий Спиридонов
Всем привет. Готов кто-нибудь уделить время и рассказать как получить время в с++ в виде форматированной строки. Последнее время стандартов развелось что то вводят но не стандартизируют, что то помечают как устаревшее и в итоге непонятно чем пользоваться.
Остановился на этом
                   auto timenow = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
                   std::ostringstream oss;
                   oss << std::put_time(std::localtime(&timenow), "%Y-%m-%d %H-%M-%S");
                   auto str = oss.str();
но ругается на localtime и put_time не стандартизован. Что есть лучше?
Локаль надо предусматривать.
источник

ДС

Дмитрий Спиридонов... in pro.cxx
Гласси Hudobin
Локаль надо предусматривать.
Формат вывода времени локальный нет, а временную зону да, но она вроде учитывается.
источник

В

Владимир in pro.cxx
Привет коллеги, как лучше реализовать класс таймера. Каждому инстансу выделять свой thread в котором следить за отсчетом или использовать вектор указателей и один глобальный thread запущенный с первым нстансом который будет проверять все запущенные таймеры?
источник

ГH

Гласси Hudobin in pro.cxx
Дмитрий Спиридонов
Формат вывода времени локальный нет, а временную зону да, но она вроде учитывается.
Ничего не понял. Строка формата в твоем коде вообще нестандартная. Либо ты берешь формат вывода из локали, либо берешь ISO формат: https://pastebin.com/yryWPSfP
источник

ПК

Побитый Кирпич... in pro.cxx
Владимир
Привет коллеги, как лучше реализовать класс таймера. Каждому инстансу выделять свой thread в котором следить за отсчетом или использовать вектор указателей и один глобальный thread запущенный с первым нстансом который будет проверять все запущенные таймеры?
Лучше всего использовать готовые
источник

ПК

Побитый Кирпич... in pro.cxx
И там нет никаких потоков
источник

ДС

Дмитрий Спиридонов... in pro.cxx
Гласси Hudobin
Ничего не понял. Строка формата в твоем коде вообще нестандартная. Либо ты берешь формат вывода из локали, либо берешь ISO формат: https://pastebin.com/yryWPSfP
Ну да, мне и нужен свой формат вывода который будет задан в настройках программы. Вопрос как правильно сформировать строку с датой. Если компилятор на всё ругается. На gmtime из вашего примера тоже ругается как на устревший.
источник

ДС

Дмитрий Спиридонов... in pro.cxx
на localtime тоже ругается
источник

ДС

Дмитрий Спиридонов... in pro.cxx
какой сейчас вариант правильный?
источник

В

Владимир in pro.cxx
Побитый Кирпич
Лучше всего использовать готовые
<sys/timerfd.h> ?
источник

ПК

Побитый Кирпич... in pro.cxx
Владимир
<sys/timerfd.h> ?
Нет, boost.asio
источник

В

Владимир in pro.cxx
Побитый Кирпич
Нет, boost.asio
Буст это хорошо. Но если есть условие буст не использовать? Реализация только для Linux.
источник

ПК

Побитый Кирпич... in pro.cxx
Владимир
Буст это хорошо. Но если есть условие буст не использовать? Реализация только для Linux.
Тогда свою писать обёртку над таймерами ОС
источник

ПК

Побитый Кирпич... in pro.cxx
Владимир
Буст это хорошо. Но если есть условие буст не использовать? Реализация только для Linux.
Там всё равно не будет потоков. Всё интегрированно в общий event-loop должно быть
источник

AT

Alexander Tulikov in pro.cxx
Владимир
Буст это хорошо. Но если есть условие буст не использовать? Реализация только для Linux.
Asio есть вне буста.
источник

В

Владимир in pro.cxx
Побитый Кирпич
Там всё равно не будет потоков. Всё интегрированно в общий event-loop должно быть
Спасибо. Пойду осваивать системный таймер )
источник

SK

Stas Koynov in pro.cxx
как стандартным путем получить  минимально необходимый uintX_t тип указав кол-во бит.
скажем
1..8 uint8_t
9..16 uint16_t
есть шаблон через специализацию для этого дела под 03 плюсы, есть ли в современном, стандартные средства?
PS без буста только.
источник

ID

In Dev in pro.cxx
Stas Koynov
как стандартным путем получить  минимально необходимый uintX_t тип указав кол-во бит.
скажем
1..8 uint8_t
9..16 uint16_t
есть шаблон через специализацию для этого дела под 03 плюсы, есть ли в современном, стандартные средства?
PS без буста только.
Использовать?
uint_least8_t
uint_least16_t
uint_least32_t
uint_least64_t
источник

SK

Stas Koynov in pro.cxx
In Dev
Использовать?
uint_least8_t
uint_least16_t
uint_least32_t
uint_least64_t
нет я не про это спрашивал. я спршивал, как мне задав n бит получить минимальный тип для его представления
источник