Помогите разобраться почему ошибка при компиляции, а то автор молчит :(

fixa
Offline
Зарегистрирован: 09.08.2017

https://github.com/zidik/LedMatrix16x32-Alternative

При компиляции :

error: 'swap' was not declared in this scope

swap(x, y);

 

b707
Offline
Зарегистрирован: 26.05.2017

swap(x,y) - это, очевидно, макрос или функция, обменивающая значения x и y. Если ее нет в библиотеке - напишите ее сами

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

держы

template <typename T> static inline void swap(T& a, T& b) { T t = a; a = b; b = t; }
 
brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Ну компилятор не может найти функцию swap.

Что это: http://ru.cppreference.com/w/cpp/algorithm/swap

В вашем случае она используется в RGBmatrixPanelAlternative.cpp

Возможно вам стоит попробывать добавить где нибудь что то типа :  #include <stdio.h>

Или воткнуть с файл RGBmatrixPanelAlternative.cpp что то типа

void swap(int16_t &x, int16_t &y)
      {
           if (&x == &y) 
              return;
           x ^= y;
           y ^= x;
           x ^= y;
      }

PS Ну а я совсем опоздал, но стирать не буду :)

fixa
Offline
Зарегистрирован: 09.08.2017

Просто автор выложил готовый проект - и не верится, что он пропустил функцию

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

fixa пишет:

Просто автор выложил готовый проект - и не верится, что он пропустил функцию

а, как ты понял, что это готовый проект?

fixa
Offline
Зарегистрирован: 09.08.2017
DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017
b707
Offline
Зарегистрирован: 26.05.2017

fixa пишет:

Просто автор выложил готовый проект - и не верится, что он пропустил функцию

Ну не верится - сиди и жди, пока он ответит (если).

Предложили же решение - чего бы не попробовать? Зачем тогда спрашивал?

fixa
Offline
Зарегистрирован: 09.08.2017

DetSimen пишет:

а зачем нам это?

Спросили же - как я понял, что готовый проект - вот, все написано

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

задолбали, хоть в ООН жалуйся!!!

в СТАРЫХ версиях ИДЕ был определен макрос swap().

В новых - нет.

Многие старые программы и библиотеки нужно корректировать, добавляя этот макрос.

Еще раз: ЗАДОЛБАЛИ херню обсуждать.

fixa
Offline
Зарегистрирован: 09.08.2017

Понятно - а теперь для непрограммистов - как точно он должен быть написан - и куда точно его добавить? Если это не военная тайна...  

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

$)

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

А что тут делает НЕПРОГРАММИСТ  ?

Выносит мосх программистам ?

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

fixa пишет:

Понятно - а теперь для непрограммистов - как точно он должен быть написан - и куда точно его добавить? Если это не военная тайна...  

рехнулся? тебе три раза  выше уже ответили.

Мне нравится вариант от DetSimen. Этаки "высокотехнологичный". Можно взять классику от Брукли.

Если ты не по-нарошку задаешь вопрос"куда его засунуть", то ответ - в задницу. В этом случае продай ардуину и не ипи людЯм моск. Дворнику контроллеры не нужны.

 

b707
Offline
Зарегистрирован: 26.05.2017

fixa пишет:

Понятно - а теперь для непрограммистов

 "Придется вам заплатить, чтобы вы ушли" (с)

На ваш вопрос аж 2 ответа - в сообщениях #2 и #3

fixa
Offline
Зарегистрирован: 09.08.2017

Ну, естественно, я сам решу - быть мне тут или нет. И продавать или не продавать контроллер - тоже без советчиков обойдусь. Не нравится Вам присутствие тут неучей - заведите им песочницу. Или тест какой при регистрации на форуме. Нету? Ну тогда жалуйтесь модератору на надоевших дворников. Теперь про тему - может, все-таки, поможет кто? Или - какая там версия ИДЕ еще свап поддерживала?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

вариант от ДетСимена или Брукли в певую строку(-ки) своего скетча.

....

Но при ваших знаниях у вас все равно нихера не выйдет. Не нужно вам это. Семки и Яга ... ну и русский репчик - самое то!

b707
Offline
Зарегистрирован: 26.05.2017

откройте файл RGBmatrixPanelAlternative.cpp

вставьте начиная со строки 77 код brokly из третьего сообщения ветки

1void swap(int16_t &x, int16_t &y)
2      {
3           if (&x == &y)
4              return;
5           x ^= y;
6           y ^= x;
7           x ^= y;
8      }

потом в файл RGBmatrixPanelAlternative.h вставьте примерно на строку 7

1void swap(int16_t &x, int16_t &y);

все, ошибка должна пропасть

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Если человеку дать рыбу, то попросит еще.

Если человку дать удочкой по заднице, то он, скорее всего, от тебя отстанет.

(древняя мудрость рыбаков озера Кенэрет)

b707
Offline
Зарегистрирован: 26.05.2017

wdrakula пишет:

в первую строку(-ки) своего скетча.

А сработает? Например, дефайны из скетча в библиотеках не работают.

b707
Offline
Зарегистрирован: 26.05.2017

wdrakula пишет:

Если человеку дать рыбу, то попросит еще.

да ладно, пусть пользуется

b707
Offline
Зарегистрирован: 26.05.2017

зато теперь, кажется. ушел :)

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

b707 пишет:

зато теперь, кажется. ушел :)

рыбу в кустах дожрёт и вернётся.