Vsevolod
12.01.2018
12:34:35
ну, std::unordered_map как бы не блистает скоростью
это же open hash table со всеми вытекающими
даже в glib лучше
но из-за темплейтов оно хотя бы выглядит человечески в отличие от khash с его макросами внутри структур (брр)
Google
Berkus
12.01.2018
12:40:48
сначала надо взять std
потом конвертнуть
потом профайлить
потом оптимизировать там где надо оптимизировать
раз уж вы взялись за с++ рекомендую немедленно втянуть буст
Vsevolod
12.01.2018
12:43:25
я еще пока ни за что не взялся, я размышляю, стоит ли
и сколько это займет времени
Aleksei
12.01.2018
12:44:03
Всем привет. Есть примерно такой код
https://paste.fedoraproject.org/paste/vu6M2D4mkwPpGZY61rw63Q
Все вроде бы работает, но иногда, очень редко, почему-то в в strFull и strShort оказываются разные даты... Например,
1515577750, 2018-01-10 06:44:36, 09_01_2018
Не могу понять, как это может происходить...
Berkus
12.01.2018
12:46:01
Pirate
12.01.2018
12:47:07
Vsevolod
12.01.2018
12:48:05
ну, сходу все void * implicit касты идут лесом
а так, даже не знаю, что
Google
Pirate
12.01.2018
12:48:12
какие там различия кроме void-pointers?
Vsevolod
12.01.2018
12:48:40
разве что c99 member wise initialisation:
struct foo = { .f1 = 1, .f2 = 2}
но в каком-то c++ это добавили (в 17-м afair)
Berkus
12.01.2018
12:49:09
мне лень, а если тебе интересно - скачай любой проект - тот же glib и сделай CC=g++ ./configure и посмотри
Vsevolod
12.01.2018
12:50:02
у меня cmake, и он так делать отказывается
Ignat
12.01.2018
12:50:06
Berkus
12.01.2018
12:50:25
Vsevolod
12.01.2018
12:50:44
тогда он заново вызывает cmake
впрочем, это можно обойти
Berkus
12.01.2018
12:51:50
это отключается
Igor
12.01.2018
12:52:48
Aleksei
12.01.2018
12:53:33
Всем привет. Есть примерно такой код
https://paste.fedoraproject.org/paste/vu6M2D4mkwPpGZY61rw63Q
Все вроде бы работает, но иногда, очень редко, почему-то в в strFull и strShort оказываются разные даты... Например,
1515577750, 2018-01-10 06:44:36, 09_01_2018
Не могу понять, как это может происходить...
Почитал описание localtime, там сказано
The returned value points to an internal object whose validity or value may be altered by any subsequent call to gmtime or localtime.
Я правильно понимаю, что если между вызовами strftime в другом потоке будет вызван localtime с другим таймстемпом, то второй вызов strftime вернет мне другую дату?
Berkus
12.01.2018
12:55:14
да
эти кривые сишные апи со статик объектом в функции абсолютно не thread safe
Aleksei
12.01.2018
12:56:09
Уф... Хоть понятно стало, в чем дело
localtime_r что ли использовать...
Berkus
12.01.2018
12:57:01
ну там должны быть нестандартные функции которые безопасны для кросс-тредовых апп
обычно этот статик буфер сунут в TLS
Aleksei
12.01.2018
13:02:55
С tls было бы хорошо. Проверю, спасибо
Google
Vsevolod
12.01.2018
13:04:42
localtime_r - это posix
и там нет никакого tls - объект просто передается в саму функцию
http://pubs.opengroup.org/onlinepubs/009695399/functions/localtime.html
Aleksei
12.01.2018
13:06:57
Berkus
12.01.2018
13:08:42
это несколько оффтопик, правда же?
Ilia
12.01.2018
14:47:05
Не "несколько" а совсем оффтопик.
Ostap
12.01.2018
14:49:02
Разрешает, у ChatMember есть state, одним из значений которых есть 'member'
Но это оффтоп
Berkus
12.01.2018
15:24:46
ChatMember.member.isMember()
Alexander
12.01.2018
16:11:03
https://cppcast.com/2018/01/matt-godbolt/
@antoshkka как там перевод буста на CMake? неужели снова умерло?
Ostap
12.01.2018
16:15:03
Неужели так трудно раз в год через Boost.Build собирать? Где профит от перехода на CMake?
Alexander
12.01.2018
16:20:26
Да, так трудно
есть какой-то смысл в использовании Boost.Build?
Artem
12.01.2018
16:22:03
find_package(Boost 1.66.0 COMPONENTS filesystem regex REQUIRED)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(CxxProject main.cpp)
target_link_libraries(CxxProject ${Boost_LIBRARIES})
endif()
вот у меня так работает
Alexander
12.01.2018
16:23:20
Anatoly
12.01.2018
16:23:43
По идее, это успех!
Artem
12.01.2018
16:23:52
?
Google
Antony
12.01.2018
16:28:36
Alexander
12.01.2018
16:28:58
ясно. Умерло ?
Antony
12.01.2018
16:29:09
Если у кого-то есть пара свободных часов - будет круто, если поможете в переезде