
Nik
19.02.2018
13:18:35
и может ли быть high_resolution_clock не-steady?

Ilia
19.02.2018
13:24:28

Александр
19.02.2018
13:49:04

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)

Igor
19.02.2018
18:43:08

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?

Alexander
19.02.2018
19:24:08
тебе лучше в mailing list :)

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

Kitsu
19.02.2018
19:40:50

Google

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

Alex Фэils?︙
19.02.2018
20:40:34

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

Alex Фэils?︙
19.02.2018
21:01:03

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

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

Pavel
19.02.2018
21:18:58

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
# 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
Ага, пасяп. Не совсем понял, что делать когда нужно одновременно собрать таргет под целевую платформу и под таргет вспомогательной утилиты под хостовую
Ну вернее понял что как то нужны импорты

Stanislav
19.02.2018
21:24:36

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)?

Alexander
19.02.2018
21:32:42

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


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:28:40

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

Ender
20.02.2018
06:09:06

Berkus
20.02.2018
06:17:59

Matwey
20.02.2018
06:22:48

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
В телеграме можно редактировать сообщения

Maks
20.02.2018
06:31:37

Alexander
20.02.2018
06:32:09