- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
class std::unordered_map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,
enum REG,struct std::hash<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,
struct std::equal_to<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,
class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,
class std::allocator<char> > const ,enum REG> > > registers"
(?registers@@3V?$unordered_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@W4REG@@U?$hash@V?$
basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@U?$equal_to@V?$basic_string@DU?$char_traits@D@std@@V?
$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@W4
REG@@@std@@@2@@std@@A) уже определен в decoder.obj PVC-16 C:\Users\Люда\source\repos\PVC-16\PVC-16\interrupt.obj 1
Ты переменную в хедере объявил, судя по всему. Она попала в джве цппшки и линкер теперь ругается.
> C:\Users\Люда
Какой багор )))
Но да, у крестовиков нарушение ODR — смертный грех.
Зато в «C++17» завезли inline переменные (и функции), можно течь.
В результате выполнения получаем:
> C:\Users\Люда
Тоже орнул.
Для них неопределённо «Будем вместе под пледиком заниматься парным <professiya_name>»?
Или ты про то, что задротов среди программистов больше?
Марь Иванна, а почему вы с Иваном Петровичем залезли под плед и рассказываете про многочлены вдвоём?
Или про Марианскую впадину.
https://ic.pics.livejournal.com/avva/111931/78594/78594_original.jpg
Там надо стоило оставить только: Привыкай.
Он-то думал, что надо будет винду переустановить и сразу на чай
Характеристики изделия.
Weight 7.2 kg.
Max working pressure 12 bar.
Hose inside dia 5/8 in.
Hose inside dia 16 mm.
Нарушение крестового ODR даже телеграм бота на другом краю земли порвало.
Переведи на «PHP».
И в проблеме-следствии тоже нужно разобраться. Это не должно приводить к циклической отправке.
Rule of thumb: крестовые ошибки надо читать сверху вниз, справа налево. Тогда ещё можно разобраться.
а выхлоп в жсоне выгружать, как взрослые
Ну и на самом деле это полезно, чтобы понимать, на что конкретно компилятор орёт, а не пытаться в блокнотике самому все алиасы раскрывать, рекурсивно.
Кстати, кнопочками в хтмле удобно было бы раскрывать до нужного уровня. Видимо поэтому Ди предлагает json.
Я думал он тело сообщения тоже структурно покажет, а там всё в кучу и текстом ;(
Ну хоть на блоки разбивает по всем этим "candidate" и "in instantiation of".
А в пределах одной ошибки я обычно тоже читаю сверху вниз: в самом начале смотрю, что конкретно компилятору не нравится, а потом уже листаю in instantiation of вниз до своего кода.
Реальных примеров сейчас не приведу, но когда у меня ломается какая-то метушня и надо разбирать сотню-другую килобат ошибок — обычно достаточно скомпилировать тот же самый кусок кода в «clang» и всё станет понятнее. Вон, когда «Brainfuck» на шоблонах пилил — пару раз пришлось смотреть на ошибки в «clang» (он, в частности, наиболее наглядно продемонстрировал ошибку с кривым шаблоном operator<<()).
(зачем вообще локализовывать выхлоп компилятора??)
а IDE зачем?
чтобы ржать
Как вы их вообще парсите?
Помницца минэ, c++ builder 6 мог клепать exe, из которых экспортировались подобные же функции, причем ребята из борланд ещё и рекомендовали вызов методов из *.exe как должное.
нельзя так. для этого есть dll
не жонглироваными а манглироваными
runtime library и твой билд были сшиты вместе, и приложение вызывало функции само из себя.