Mindíg tudtam, hogy a kulcslyukon keresztül lesegetem az arduino világát, de hogy nem is kulcslyuk, csak egy gombostűnyi folytonossági hiány, arra most jöttem rá.

Már csak azért is, mert a "kulcslyuk sebészet" az létező dolog, de gombostű sebészetről még nem hallottam.

De a tudás vágy az dolgozik bennem, ezért uppoltam 1.6.11-ről 13-ra, hogy kipróbáljam mi is fog történni.
A kódot nézegetve a nagybetűk megjelenésére számítok, és az "Ird at jobbra" szövegnek is lesz szerepe, de ez csak pár morzsa. Ez sem tudás, inkább csak sejtés. Még az sem derült ki számomra, hogy hova másoljam a kódot, így egy üres template setup-jába raktam.
Kód: Egész kijelölése
void setup() {
enum class Allapot { ELOSZOR, MASODSZOR, HARMADSZOR };
template <typename T> void kiiro(T&& a, bool && ujsor = false)
{
if( ujsor )
Serial.println(a);
else
Serial.print(a);
}
template <typename T> auto szamolo(T && a, T && b) -> decltype(a + b)
{
return a+b;
}
auto setup() -> void {
Serial.begin(115200);
}
auto allapot = Allapot::ELOSZOR;
[[deprecated("Ird at jobbra")]]
auto dekodolo = [] (char i) {
if( --i == '@' )
return 'Z';
return i;
};
auto loop() -> void {
switch(allapot)
{
case Allapot::ELOSZOR:
{
char puffer[] = {'I', 'F', 'M', 'M', 'P', '\x0B'};
for( auto & c : puffer )
kiiro(dekodolo(c));
}
allapot = Allapot::MASODSZOR;
break;
case Allapot::MASODSZOR:
{
kiiro( szamolo(12,13), true );
kiiro( szamolo(12.2,13.1), true );
}
allapot = Allapot::HARMADSZOR;
break;
case Allapot::HARMADSZOR:
auto a = 12;
decltype (a) b = a + 5;
kiiro(b, true);
allapot = Allapot::ELOSZOR;
break;
}
delay(250);
}
}
void loop() {
// put your main code here, to run repeatedly:
}
Viszont nálam nem fordul le, hibát dob, az alábbiak szerint.
Kód: Egész kijelölése
Vázlat fordítása...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10613 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Users\Laci\AppData\Local\Temp\arduino_build_30852\sketch\Csabeszq.ino.cpp" -o "C:\Users\Laci\AppData\Local\Temp\arduino_build_30852\sketch\Csabeszq.ino.cpp.o"
C:\Users\Laci\Documents\Arduino\Csabeszq\Csabeszq.ino: In function 'void setup()':
Csabeszq:4: error: a template declaration cannot appear at block scope
template <typename T> void kiiro(T&& a, bool && ujsor = false)
^
Csabeszq:17: error: a function-definition is not allowed here before '{' token
auto setup() -> void {
^
Csabeszq:30: error: a function-definition is not allowed here before '{' token
auto loop() -> void {
^
Csabeszq:63: error: expected '}' at end of input
}
^
exit status 1
a template declaration cannot appear at block scope