ceckovy kviz 3 (na uprsane dlhe vikendy)
František Burian
BuFran na seznam.cz
Pátek Září 8 13:39:16 CEST 2023
Zdravím,
Zajímavé, tak pro referenci ostatních aby měli přehled
# g++ -o tst testbool.cpp
testbool.cpp: In function ‘int main()’:
testbool.cpp:10:3: error: use of an operand of type ‘bool’ in ‘operator++’ is forbidden in C++17
10 | a++; b--;
| ^
testbool.cpp:10:8: error: use of an operand of type ‘bool’ in ‘operator--’ is forbidden
10 | a++; b--;
| ^
testbool.cpp:11:3: error: use of an operand of type ‘bool’ in ‘operator--’ is forbidden
11 | a--; b++;
| ^
testbool.cpp:11:8: error: use of an operand of type ‘bool’ in ‘operator++’ is forbidden in C++17
11 | a--; b++;
# g++ -o tst --std=c++11 testbool.cpp
testbool.c: In function ‘int main()’:
testbool.c:10:3: warning: use of an operand of type ‘bool’ in ‘operator++’ is deprecated [-Wdeprecated]
10 | a++; b--;
| ^
testbool.c:10:8: error: use of an operand of type ‘bool’ in ‘operator--’ is forbidden
10 | a++; b--;
| ^
testbool.c:11:3: error: use of an operand of type ‘bool’ in ‘operator--’ is forbidden
11 | a--; b++;
| ^
testbool.c:11:8: warning: use of an operand of type ‘bool’ in ‘operator++’ is deprecated [-Wdeprecated]
11 | a--; b++;
# gcc -o tst testbool.c
// žádný výstup (soubor identický s CPP verzí jen jiná přípona)
... ještě že ty jazyky se pěkně v čase sbližují, to co vzešlo z C, vylepšilo se v C++ se teď zpátky dostává do C :-)
Díky za pohled za obzor, toto jsem nevěděl !
Franta Burian
Dne 08. 09. 23 v 10:07 Jan Waclawek napsal(a):
> Inkrement _Bool nema rovnake spravanie ako inkrement unsigned premennej so
> sirkou 1 bitu.
>
> Majme _Bool b; b = 0; b++; - vysledok je 1 podla ocakavania.
>
> Ale ak b = 1; b++; prekladac vezme hodnotu b, 1, skonvertuje ju implicitne
> na unsigned int, to je 1, inkrementuje, to je 2, a konvertuje ju spat na
> _Bool, vysledok coho je 1 (toto je prave ten chytak).
>
> Dekrement vsak funguje podla ocakavania: b = 1; b--; => b == 0. b = 0; b--;
> => b == 1.
>
> Derek Jones mal samozrejme nutkanie toto nepopisat explicitne, ale uviest
> to v takejto hadankovej forme.
>
> wek
>
>
>
> ----- Original Message ---------------
>
> Znova z nevycerpatelnej studnice perverzit, Dereka Jonesa:
>
> #include <stdio.h>
>
> void f(_Bool p)
> {
> _Bool q = p;
>
> q--; q++;
> p++; p--;
>
> if (p == q)
> printf("This implementation is not conforming\n");
> }
>
> Upozornujem, ze ten subject nie je nahodny, hoci mozno niekto vie odpoved z
> fleku; ak ano, je pre mna skutocne borec.
> Kedze nasledujuci vikend asi nebude uprsany, v nasledujucom poste bude hned
> odpoved (t.j. ak niekto si chce pockat na uprsany vikend, nech ho necita).
>
> wek
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list