2013-12-01, 16:06
  #1
Medlem
kinesarsles avatar
Och i så fall när skedde det? Vilka kompilatorer stödjer det?



(Jag märkte rätt snabbt att "c++ or ||" inte fungerade speciellt bra att googla)
Citera
2013-12-01, 16:29
  #2
Medlem
pponmms avatar
Är "or" alltså ett nyckelord nu? Eller hur menar du?

I alla fall så kör jag själv inte C++ 11 än, vilket jag antar att du gör? I såna fall så lades det antagligen till i C++ 11. Jag kan då inte använda detta nyckelordet i min kod.

källa
Citat:
alternative operators: as an alternative for ||

När jag kollar lite snabbt på källan som jag själv länkade så verkar det inte ha kommit med C++. Jag har faktiskt ingen aning! Spännande i alla fall!
Citera
2013-12-01, 16:45
  #3
Medlem
pponmms avatar
Här finns det lite läsning om det, tillsammans med "and" osv.

http://stackoverflow.com/questions/2...ical-operators

http://stackoverflow.com/questions/2...t-xor-keywords

Citat:
They originated in C in the header <iso646.h>. At the time there were keyboards that couldn't type the required symbols for && (for example), so the header contained #define's that would assist them in doing so, by (in our example) defining and to be &&. Of course, as time went by this became less used.

In C++, they became what are known as alternate tokens. You do not need to include anything to use these tokens in a compliant compiler (as such, the C++-ified version of the C header, <ciso646>, is blank). Alternate tokens are just like regular tokens, except for spelling. So during parsing and is exactly the same as &&, it's just a different way of spelling the same thing.

Jag får det dock inte att funka utan att inkludera några headers.
Citera
2013-12-02, 13:04
  #4
Medlem
kinesarsles avatar
Man tackar.
Citera
2013-12-12, 11:51
  #5
Medlem
hrghs avatar
Är standardiserat sedan C++03; se http://stackoverflow.com/questions/1...e-or-and-logic. Finns fler obskyra alternativa keywords också.
Citera
2013-12-20, 06:38
  #6
Medlem
Goto10s avatar
Citat:
Ursprungligen postat av hrgh
Är standardiserat sedan C++03; se http://stackoverflow.com/questions/1...e-or-and-logic. Finns fler obskyra alternativa keywords också.

Hur lyckades du dra slutsatsen att det är standardiserat utifrån den länken?
I vilket fall, jag kollade igenom C++11-standarden och under rubriken "2.13 Operators and punctuators" finns både and och or med (och även deras bitvisa varianter bitand och bitor).
Så svaret på frågan är ja, det är standardiserat.
Citera
2014-01-08, 21:03
  #7
Medlem
pponmms avatar
Satt och slöläste lite på cplusplus.com och råkade komma in på denna sida:

http://www.cplusplus.com/reference/ciso646/
Citat:
ISO 646 Alternative operator spellings
This header defines eleven macro constants with alternative spellings for those C++ operators not supported by the ISO646 standard character set:

När jag inkluderade den headern, ciso646, så kunde jag använda mig utav "and", "or" osv. Men jag förstår inte riktigt varför det inte funkar annars, kanske måste uppdatera min kompilator?
Citera
2014-01-08, 23:36
  #8
Medlem
Citat:
Ursprungligen postat av pponmm
Satt och slöläste lite på cplusplus.com och råkade komma in på denna sida:

http://www.cplusplus.com/reference/ciso646/


När jag inkluderade den headern, ciso646, så kunde jag använda mig utav "and", "or" osv. Men jag förstår inte riktigt varför det inte funkar annars, kanske måste uppdatera min kompilator?

De är inbyggda keyword sen åtminstone C++03, kanske tidigare, men MS verkar ha svårt att följa standarden som vanligt. Den andra länken här kanske hjälper, kolla kompilator-dokumentationen annars.

http://stackoverflow.com/a/15024502/1246115
http://stackoverflow.com/a/6006540/1246115
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in