Size: a a a

2020 July 21

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
tamtakoe
Такой код
using Item  = map<string, variant<string, double>>;
using Group = map<string, variant<string, double, deque<Item*>>>;

Group* pGroup = &getGroup();
(*pGroup)["items"] = {};
deque<Item*>* pGroupItems = &get<deque<Item*>>((*pGroup)["items"]);
выкидывает std::bad_variant_access по адресу памяти 0x00AFECD8.
Что не так делаю? Вроде везде правильно к Варианту обращаюсь
Метод emplace посмотри
источник

R

RMaks in supapro.cxx
Переслано от RMaks
define CLK 2

#define DT 3

#define SW 4

#include "GyverEncoder.h"

//Encoder enc1(CLK, DT); // для работы без кнопки

Encoder enc1(CLK, DT, SW); // для работы c кнопкой

//Encoder enc1(CLK, DT, SW, TYPE2); // для работы c кнопкой и сразу выбираем тип

//Encoder enc1(CLK, DT, ENC_NO_BUTTON, TYPE2); // для работы без кнопки и сразу выбираем тип

// Варианты инициализации:

// Encoder enc; // не привязан к пину

// Encoder enc(пин CLK, пин DT); // энкодер без кнопки (ускоренный опрос)

// Encoder enc(пин CLK, пин DT, пин SW); // энкодер с кнопкой

// Encoder enc(пин CLK, пин DT, пин SW, тип); // энкодер с кнопкой и указанием типа

// Encoder enc(пин CLK, пин DT, ENC_NO_BUTTON, тип); // энкодер без кнопкой и с указанием типа

void setup() {

Serial.begin(9600);

enc1.setType(TYPE2);

}

void loop() {

// обязательная функция отработки. Должна постоянно опрашиваться

enc1.tick();

if (enc1.isTurn()) { // если был совершён поворот (индикатор поворота в любую сторону)

// ваш код

}

if (enc1.isRight()) Serial.println("Right"); // если был поворот

if (enc1.isLeft()) Serial.println("Left");

if (enc1.isRightH()) Serial.println("Right holded"); // если было удержание + поворот

if (enc1.isLeftH()) Serial.println("Left holded");

if (enc1.isPress()) Serial.println("Press"); // нажатие на кнопку (+ дебаунс)

if (enc1.isClick()) Serial.println("Click"); // отпускание кнопки (+ дебаунс)

//if (enc1.isRelease()) Serial.println("Release"); // то же самое, что isClick

if (enc1.isHolded()) Serial.println("Holded"); // если была удержана и энк не поворачивался

//if (enc1.isHold()) Serial.println("Hold"); // возвращает состояние кнопки

}
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
RMaks
Переслано от RMaks
define CLK 2

#define DT 3

#define SW 4

#include "GyverEncoder.h"

//Encoder enc1(CLK, DT); // для работы без кнопки

Encoder enc1(CLK, DT, SW); // для работы c кнопкой

//Encoder enc1(CLK, DT, SW, TYPE2); // для работы c кнопкой и сразу выбираем тип

//Encoder enc1(CLK, DT, ENC_NO_BUTTON, TYPE2); // для работы без кнопки и сразу выбираем тип

// Варианты инициализации:

// Encoder enc; // не привязан к пину

// Encoder enc(пин CLK, пин DT); // энкодер без кнопки (ускоренный опрос)

// Encoder enc(пин CLK, пин DT, пин SW); // энкодер с кнопкой

// Encoder enc(пин CLK, пин DT, пин SW, тип); // энкодер с кнопкой и указанием типа

// Encoder enc(пин CLK, пин DT, ENC_NO_BUTTON, тип); // энкодер без кнопкой и с указанием типа

void setup() {

Serial.begin(9600);

enc1.setType(TYPE2);

}

void loop() {

// обязательная функция отработки. Должна постоянно опрашиваться

enc1.tick();

if (enc1.isTurn()) { // если был совершён поворот (индикатор поворота в любую сторону)

// ваш код

}

if (enc1.isRight()) Serial.println("Right"); // если был поворот

if (enc1.isLeft()) Serial.println("Left");

if (enc1.isRightH()) Serial.println("Right holded"); // если было удержание + поворот

if (enc1.isLeftH()) Serial.println("Left holded");

if (enc1.isPress()) Serial.println("Press"); // нажатие на кнопку (+ дебаунс)

if (enc1.isClick()) Serial.println("Click"); // отпускание кнопки (+ дебаунс)

//if (enc1.isRelease()) Serial.println("Release"); // то же самое, что isClick

if (enc1.isHolded()) Serial.println("Holded"); // если была удержана и энк не поворачивался

//if (enc1.isHold()) Serial.println("Hold"); // возвращает состояние кнопки

}
Во-первыз, на пасту. Во-вторых, не вижу вопроса
источник

t

tamtakoe in supapro.cxx
Artöm Bakri Al-Sarmini
Метод emplace посмотри
Чуть прояснилось, спасибо
источник

t

tamtakoe in supapro.cxx
Подскажите, как можно сериализовать сложную структуру данных в целях отладки? Типа deque<map<double, string, deque<map<double, string>>>> Только без лишнего мусора
источник

Е

Егор in supapro.cxx
tamtakoe
Подскажите, как можно сериализовать сложную структуру данных в целях отладки? Типа deque<map<double, string, deque<map<double, string>>>> Только без лишнего мусора
претти принтер какой-то взять на гитхабе
источник

DP

Denis Paukaev in supapro.cxx
tamtakoe
Подскажите, как можно сериализовать сложную структуру данных в целях отладки? Типа deque<map<double, string, deque<map<double, string>>>> Только без лишнего мусора
Итерируешься по ней и сериализуешь
источник

MK

Mikhail Kornaukhov in supapro.cxx
Егор
претти принтер какой-то взять на гитхабе
Тиллевский
источник

Е

Егор in supapro.cxx
Егор
претти принтер какой-то взять на гитхабе
а, ты отредачил
источник

t

tamtakoe in supapro.cxx
Mikhail Kornaukhov
Тиллевский
Это какой?
источник

v

vexillum in supapro.cxx
tamtakoe
Это какой?
источник

D

Danya in supapro.cxx
tamtakoe
Это какой?
Там только печать в консоль
источник

TS

Till Schneider in supapro.cxx
Danya
Там только печать в консоль
Не только в консоль
источник

D

Danya in supapro.cxx
tamtakoe
Это какой?
источник

t

tamtakoe in supapro.cxx
Оу! Даже описание на русском))
источник

D

Danya in supapro.cxx
tamtakoe
Оу! Даже описание на русском))
Ему лень наверное было на английском писать)
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Ну хз удобно ли все в одной строке читать)
источник

t

tamtakoe in supapro.cxx
А как, вообще, в с++ либы подключаются? Пакетный менеджер есть какой-нибудь или файлики вручную надо копировать?
источник

Е

Егор in supapro.cxx
tamtakoe
А как, вообще, в с++ либы подключаются? Пакетный менеджер есть какой-нибудь или файлики вручную надо копировать?
Conan!
источник

D

Danya in supapro.cxx
tamtakoe
А как, вообще, в с++ либы подключаются? Пакетный менеджер есть какой-нибудь или файлики вручную надо копировать?
Ахахахах
источник