@ProCxx

Страница 1769 из 2477
Nik
19.02.2018
13:18:35
и может ли быть high_resolution_clock не-steady?

Ilia
19.02.2018
13:24:28
Подозреваю нечто вроде: template<typename T, typename U> bool is_same_child(const U * const lhs, const U * const rhs) { return dynamic_cast<const T *>(lhs) == dynamic_cast<const T *>(rhs); }
template<typename Base, typename T1, typename T2> bool is_same_child(const T1 * const lhs, const T2 * const rhs) { return dynamic_cast<const Base *>(lhs) == dynamic_cast<const Base *>(rhs); }

Ilia
19.02.2018
14:19:17
Google
Александр
19.02.2018
14:20:05
А смысл?
никакого, верно

Vladimir
19.02.2018
14:21:46
Можно ещё T2 по умолчанию = T1
> Оба указателя имеют один и тот же тип, но могут ссылаться на разные однотипные базы внутри одного объекта. > Напишите шаблонную функцию, которая по двум однотипным указателям проверяет, указывают ли они на один объект. Т.е. указатель на один базовый класс, но достижимый из разных путей наследования. Как я понял, например, класс C наследуется от A и B, B наследуется от A. А проверяющая функция получает 2 указателя на "A *".

Александр
19.02.2018
14:22:42
вообще уже выше сказали, что указывают на один объект - это тупо равны

Dmitry
19.02.2018
15:30:26
Как у spdlog с потреблением памяти?

Berkus
19.02.2018
15:32:33
Александр
19.02.2018
15:38:54
Игорь
19.02.2018
18:13:17
лучший выход: exit(0)

Constantine
19.02.2018
18:43:23
понимает ли компилятор, что за вызовом виртуальной функции может стоять memory barrier?

Antony
19.02.2018
19:15:37
Ему это нужно, только при встраивании виртуальной функции. Тогда понимает, в остальных случаях - это не нужно

Matwey
19.02.2018
19:23:40
Господа, а где-нибудь на просторах телеграма есть чатик, где люди знают про qemu/kvm internals?

Google
Alexander
19.02.2018
19:24:28
мб в линуксовом чате кто-то знает

Matwey
19.02.2018
19:25:11
Да я был в том мейл листе, опыт такой, что все-равно чинить самому придется. Вот пытаюсь понять где проблему искать

Alexander
19.02.2018
19:25:43
ну значит сам чини :) опенсорс же :)

ну и патч в апстрим, если проблему пофиксишь

Matwey
19.02.2018
19:26:14
Ну вот я пока еще не знаю где чинить

Как-то хочется помощи зала

Kitsu
19.02.2018
19:28:24
Matwey
19.02.2018
19:29:19
А в чем проблема?
Проблема в том, что virtio виснет. При этом на другой машине с тем же ядром хоста, гостя, и бинарем qemu всё работает. Общую архитектуру virtio я уже изучил за сегодня/вчера.

Kitsu
19.02.2018
19:30:22
Ну звучит не сложно, gdb и вперед

не с сп?

Matwey
19.02.2018
19:32:21
а что gdb то? куда смотреть то?

Kitsu
19.02.2018
19:33:36
Ну если виснет, все просто же

Запускаешь gdb, ждешь зависание, даешь ему сигнал и смотришь трассу

Matwey
19.02.2018
19:33:58
ха ха

в qemu запускается внутри десяток потоков, и они все постоянно что-то делают, шлют какие-то нотификации, читают из eventfd т.п.

трейс показывает на epoll

оно где-то из-за логики ломается

Arseny
19.02.2018
19:38:24
понимает ли компилятор, что за вызовом виртуальной функции может стоять memory barrier?
Подозреваю, что вызов любой функции не из текущей единицы трансляции это барьер компилятора.

Kitsu
19.02.2018
19:40:50
трейс показывает на epoll
Предсказуемо, что он внизу, дальше то что?

оно где-то из-за логики ломается
Санитайзерами не пробовали смотреть?

Google
Matwey
19.02.2018
19:44:19
Предсказуемо, что он внизу, дальше то что?
Дальше просто всякие эвент-лупы бесконечные и ожидание. Тот кто надо долбит ioctl-ы KVM_RUN. Все заняты своими делами. Проблема в том, что в гостевом ядре модуль virtio_blk виснет на ожидании workqueue, и дальше срабатывают всякие softlockup детекторы. По физике оно работает там внутри. Выглядит так будто где-то продолбалось сообщение внутри virtio-кольца, либо "забыли" отправить ответ (что не отвечает на вопрос почему на другой физ-машине всё работает).

Alexander
19.02.2018
20:58:48
https://github.com/pyk/cmake-tutorial

Alex Фэils?︙
19.02.2018
21:01:03
в телеге надо сделать бота для когортных исследований с открытой статистикой
Тут есть @combot. Его авторы будут потом монетизировать это всё и мб будет такое дерьмо

Pavel
19.02.2018
21:01:21
О, больная тема

Anatoly
19.02.2018
21:08:50
https://github.com/pyk/cmake-tutorial
ну так, как-то не модерново. обслуживание тестов я бы оформил иначе: cmake_minimum_required(VERSION 3.10) project(prj LANGUAGES CXX) find_package(GTest REQUIRED) .... // хоть и говорят, что это плохой стиль, но удобно file(GLOB_RECURSE TESTS test/*.cpp) set(TEST_PROJECT_NAME ${PROJECT_NAME}_test) add_executable(${TEST_PROJECT_NAME} ${TESTS}) target_link_libraries(${TEST_PROJECT_NAME} GTest::Main GTest::GTest ...) enable_testing() add_test(${TEST_PROJECT_NAME}_runner ${TEST_PROJECT_NAME})

Matwey
19.02.2018
21:14:46
https://github.com/pyk/cmake-tutorial
Кто-нибудь пробовал использовать cmake для прошивок МК? Можно ли вызывать компилятор и кросс-компилятор без костылей?

Stanislav
19.02.2018
21:16:26
ну сделать cmake toolchain file и вперед

Stanislav
19.02.2018
21:19:40
https://github.com/swift-nav/libswiftnav/blob/master/cmake/Toolchain-gcc-arm-embedded.cmake как то так примерно для arm-none-eabi

Pavel
19.02.2018
21:20:58
https://github.com/swift-nav/libswiftnav/blob/master/cmake/Toolchain-gcc-arm-embedded.cmake как то так примерно для arm-none-eabi
Сложновватый, там и выбор платформ, для. mingw самое то в примерах в офф доках

# the name of the target operating system SET(CMAKE_SYSTEM_NAME Windows) # which compilers to use for C and C++ SET(CMAKE_C_COMPILER i486-mingw32-gcc) SET(CMAKE_CXX_COMPILER i486-mingw32-g++) SET(CMAKE_RC_COMPILER i486-mingw32-windres) # here is the target environment located SET(CMAKE_FIND_ROOT_PATH /usr/i486-mingw32) # adjust the default behaviour of the FIND_XXX() commands: # search headers and libraries in the target environment, search # programs in the host environment set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

Matwey
19.02.2018
21:23:51
Ага, пасяп. Не совсем понял, что делать когда нужно одновременно собрать таргет под целевую платформу и под таргет вспомогательной утилиты под хостовую

Ну вернее понял что как то нужны импорты

Pavel
19.02.2018
21:25:03
И директории лучше под разные платформы разные юзай

Matwey
19.02.2018
21:25:09
И мне два раза его запускать что-ли?

Stanislav
19.02.2018
21:25:15
ну да

Matwey
19.02.2018
21:25:20
Это какое-то гонево

Linux и u-boot как то сами соображают

Google
Admin
ERROR: S client not available

Matwey
19.02.2018
21:26:00
Что и чем надо собрать

По одной команде

Хочу так же

Pavel
19.02.2018
21:27:36
Хорошее желание

Matwey
19.02.2018
21:27:52
Ну законное желание, на самом деле

Например, mkimage - хостовая цель, а uboot.bin - кросс.

Constantine
19.02.2018
21:32:14
хм... а кто-нибудь разбирался в Class template argument deduction (тот который since C++17)?

Constantine
19.02.2018
21:33:38
а что именно интересует?
ну грубо говоря template <typename T> void f(some_type<T> argument) { //будет ли здесь проведен deduction для T, если у some_type есть конструктор, допускающий implicit? }

Alexander
19.02.2018
21:36:04
ну грубо говоря template <typename T> void f(some_type<T> argument) { //будет ли здесь проведен deduction для T, если у some_type есть конструктор, допускающий implicit? }
нашёл такое: When earlier tiebreakers, including partial ordering, failed to distinguish between two candidate function templates, the following rules apply: A function template generated from a guide is preferred over one implicitly generated from a constructor or constructor template. The copy deduction candidate is preferred over all other function templates implicitly generated from a constructor or constructor template. A function template implicitly generated from a non-template constructor is preferred over a function template implicitly generated from a constructor template.

Constantine
19.02.2018
21:37:43
вообще, похоже, стоит подняться по XY. Представим себе класс-обертку статического концепта, на примере std::function для operator(). Такие обертки реализуются грубо говоря через некоторый интерфейс FunctionEngineInterface и некоторый набор FunctionEngine, наследующих этот интерфейс и представляющих из себя контейнеры для оборачивания различных случаев входных параметров std::function. Представим теперь некоторую шаблонную функцию. Она хочет получить std::function, но получать именно std::function как тип это потеря информации о типе, лишние динамические аллокации и так далее, деоптизация короче. Возникает острое желание вытащить наружу из detalis класс FunctionEngine<typename T /*unspecified*/> и шаблонить такие функции параметром T

Артем
20.02.2018
05:56:26
вопрос, можно ли например собрать .dll на с++ и подключить к проекту на c#??

Matwey
20.02.2018
06:22:48
Нет же, там тоже надо указывать
Что там нужно указывать? Только CROSS_COMPILE, а дальше все одной командой собирается

Maks
20.02.2018
06:29:26
Я имею солидный опыт программирования на разных языках, но не могу разобраться с С++ с одним моментом. Перед тем как опубликовать это здесь я уже ознакомился с десятью первыми ссылками от Google, но ответа не нашел. В каком месте правильно ставить * у указателя? Node* node; // или Node *node; Я пересмотрел большое количество проектов на GitHub и Cpp-гайдлайнов, но не смог найти однозначого ответа.

Google
Александр
20.02.2018
06:30:16
Субъективно

Ender
20.02.2018
06:30:24
Да ты издеваешься

Александр
20.02.2018
06:30:27
#holywar

Maks
20.02.2018
06:30:40
Если использовать первый вариант, то запись вида Node* node, next_node. выглядит неоднозначно и ухудшает читаемость кода.

Черт, сделал ошибку

Александр
20.02.2018
06:31:07
В телеграме можно редактировать сообщения

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