@ProCxx

Страница 1646 из 2477
Vsevolod
12.01.2018
12:34:35
ну, std::unordered_map как бы не блистает скоростью

это же open hash table со всеми вытекающими

даже в glib лучше

но из-за темплейтов оно хотя бы выглядит человечески в отличие от khash с его макросами внутри структур (брр)

Google
Berkus
12.01.2018
12:40:48
сначала надо взять std

потом конвертнуть

потом профайлить

потом оптимизировать там где надо оптимизировать

ну, std::unordered_map как бы не блистает скоростью
есть несколько эффективных структур в boost.containers

раз уж вы взялись за с++ рекомендую немедленно втянуть буст

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
смотря как писать, наверное
C не компилируется С++ компиляторами обычно, только очень маленький сабсет

мне лень, а если тебе интересно - скачай любой проект - тот же glib и сделай CC=g++ ./configure и посмотри

Vsevolod
12.01.2018
12:50:02
у меня cmake, и он так делать отказывается

Ignat
12.01.2018
12:50:06
но в каком-то c++ это добавили (в 17-м afair)
нет, пока не добавили, хоть и хотят

Berkus
12.01.2018
12:50:25
у меня cmake, и он так делать отказывается
всегда можно оверрайдить в уже сгенереном build.ninja

Vsevolod
12.01.2018
12:50:44
тогда он заново вызывает cmake

впрочем, это можно обойти

Berkus
12.01.2018
12:51:50
это отключается

Igor
12.01.2018
12:52:48
но в каком-то c++ это добавили (в 17-м afair)
в 20 утвердили, в GCC есть в виде расширения с 4.8 кажется

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
localtime_r - это posix
Да, это видел

Berkus
12.01.2018
13:08:42
и там нет никакого tls - объект просто передается в саму функцию
ну так даже лучше, ненавижу когда либы держат implicit state

это несколько оффтопик, правда же?

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
Alexander
12.01.2018
16:28:58
ясно. Умерло ?

Antony
12.01.2018
16:29:09
Если у кого-то есть пара свободных часов - будет круто, если поможете в переезде

Страница 1646 из 2477