Tom
Это как с unique_ptr каким-нить. Нехорошо указатели через get() полученные после деструктора unique_ptr использовать
Tom
Nikolai
Tom
Berkus
Anonymous
Смотря что за прога
Anonymous
А вообще попробуй сам, миллионы форумов
Anonymous
Ну хз. Тебе нужно на доску обратится какую-нибудь. Тут просто обсуждают.
Крылатый
Для вакансий и предложений работы к @AlexFails
Крылатый
В пине всё написано.
Крылатый
Читайте его!
Anonymous
Не знал, что у вас тут так строго. Больше не буду)
Ioann_
Крылатый
Каждый второй.
Крылатый
Задавай свои ответы.
Anonymous
Вообще не знаю, что такое.
Anonymous
Мы еще в институте до ООП не дошли.
Anonymous
Сейчас только будет.
Anonymous
Не знаю, что такое Compile-time, но RB писал ;D
Anonymous
Могу кинуть AVL-tree, а ты его под RB подгонишь.
Anonymous
Больше ничем помочь не могу, сорь.
Anonymous
Хотя и на википедии много про RB, думаю там найдется что-то и про функциональщину.
Tom
А по подробнее?
Tom
Зачем тебе оно? Шутки ради?
cyberzx 🇷🇺
на шаблонах уже не модно. надо писать на constexpr
Tom
На шаблонах -- очень некрасиво :) В констэкспр -- не знаю, возможно ли
Александр
видел на хабре дерево в CT
Александр
https://habrahabr.ru/post/320686/
Александр
не RB, но хоть это
MrSmith
очевидно же, что бы не считать в run time
Tom
Ну... вот есть у тебя bitmap иконки в проге захардкоденный. Теперь ты, видите ли, желаешь в другом формате эту иконку иметь. Да здравствует constexpr!
MrSmith
Ну или так
Tom
Да, это пример из жизни :) Тоже удивился сначала.
MrSmith
Ну не обязательно, вот хочешь ты к примеру иметь pi с заданной точностью, но не хочешь эту самую пи считать на маленком микре обозначил точность к пример 12 знаком бам и получил
MrSmith
Или есть у тебя структура какая, хочешь, что бы внесенные внее значения были автоматически применены к другой, бах на этапе компиляции сделал
Egor
в этом плане лучше в сторону D посмотреть. vibe.d умеет html рендерить на компиляции.. возможно проще ошибки отслеживать
MrSmith
Ну или к примеру, хочешь ряд какой посчитать, но не будешь же ты это на микре делать, вот тебе снова компаил тайм
Anonymous
Дабы ускорить дальнейшее выполнение приложения. Компилятор может при включённых оптимизациях очень многое заранее рассчитать и тем самым оптимизировать.
Tom
Посмотри например
https://github.com/ned14/ntkernel-error-category/tree/static-views-test
Это, в принципе, просто база данных. Теперь с помощью библиотеки StaticViews можно создать compile time hash table и делать себе лукапы в компайл-тайм вместо того чтоб строчки везде хардкодить
Крылатый
Ситранная штука. Кто пробовал? https://scram-pra.org/
MrSmith
Хоть где где это возможно жи
MrSmith
Почему только математические? Я видел операционку для спутников от наса, они писали на си в результате у них есть куча файлов с таблицами, пиши они на крестах у них были бы тупо компаил тайм четабельный код без референсов по 12 страниц на таблицу
MrSmith
Вот хочешь ты получить массив заполнений по определенному алгоритму и что?
MrSmith
На этапе компиляции тратить время
Kirill
Я на микроконроллерах писал компайл тайм, смысл а том что тебе на этапе компиляции известно какую периферию контроллера как дёргать, в итоге делаешь классы с констекспр конструктором, у которого методы в зависимости от внутреннего состояния известного на этапе компиляции, делают то или иное. Т.к. это все известно компайл тайм, настройка периферии вырождается в тупую запись нужных значений а нужные регистры. При этом код выглядит как нормальный ООП. Типо, вот на стеке создал таймер, вот про инициализировал, вот запустил, вот передал референс другому классу
Kirill
В реальности же этот таймер известен на этапе компиляции, кладется во флеш т.к. притом конст, и хранит указатели на регистры, которые разные в зависимости от того какая это периферия, но параметры известны компайл тайм, и в итоге я передавал их в констекспр конструктор
Александр
Компайл-тайм часто используется, чтобы избежать ошибок во время компиляции, а не ловить их в рантайме
Andrew
про, посоветуйте хорошую либу для коннекта с постгрёй
cyberzx 🇷🇺
libpq
cyberzx 🇷🇺
https://www.postgresql.org/docs/9.5/static/libpq.html
Yaroslav
http://pqxx.org/development/libpqxx/ а вот плюсовая обертка
Andrew
мне pq не нравится, потому, что нет таймаутов
Andrew
вернее точно нет в pqxx
Yaroslav
эм
Yaroslav
есть
Andrew
раз это обёртка, думаю и в pq нет
Yaroslav
connect_timeout
Andrew
нету же. Предлагается делать NAT перед базой
Yaroslav
connect_timeout
Maximum wait for connection, in seconds (write as a decimal integer string). Zero or not specified means wait indefinitely. It is not recommended to use a timeout of less than 2 seconds.
Yaroslav
https://www.postgresql.org/docs/9.6/static/libpq-connect.html
Andrew
ага, кажется в pq правда есть
Yaroslav
в pqxx тоже есть
Yaroslav
Это конфиг базы
Andrew
а что конфиг базы? допсутим у сервера закончились сокеты и мы ещё даже не сконнектились
Yaroslav
не совсем так выразился . Ты когда создаешь объект, который отвечает за коннекшены к бд - передаешь туда конфиг. И он принимает набор параметров стандартных, туда connect_timeout входит
Yaroslav
Если ты дергаешь сервер через этот коннектор и у него кончились сокеты то спустя таймаут тебе вернет ошибку
Yaroslav
Если не сможет сконнектиться - аналогично
Yaroslav
Там общий таймаут на все запросы к серверу
Andrew
возьму пожалуй pq
Yaroslav
pqxx тож самое ток с плюсами)
Yaroslav
как тебе удобнее
Andrew
ну вот чот с pqxx с таймаутами какая-то магия. На стековерфлоу предлагают настраивать сокеты, полить их
Andrew
к примеру, вот
https://stackoverflow.com/questions/23492024/find-out-if-network-connection-is-lost-using-libpqxx
Andrew
может, у них версия старая?
Aleksei
Это в pq передается
Aleksei
строка. pqxx просто обертка
Andrew
это понятно
Andrew
но есть подозрение, что проблема немного глубже