Ny vinkel på parenteserna

En kanske mestadels pinsamhet i gamla goda C++ var att multipla vinkelparenteser ”>>” var definierade som bitvis högerskift, punkt slut. Då templatedefinitioner behövde nästlas blev det problem. Man fick stoppa in ett extra mellanslag för att kompilatorn skulle bli nöjd. Så här fick man skriva för att definiera en lista av listor med heltal:

list<list<int> > listOfListOfIntegers;

Ser du det extra mellanslaget? Skulle det här kunna misstolkas som bitvis högerskift? Knappast!

C++11 åtgärdar detta genom att tillåta dubbla vinkelparenteser där det inte kan tolkas som en skiftoperation. Så nu kan vi skriva så här:

list<list<int>> listOfListOfIntegers;

Känns mycket bättre eller hur!

Notera att den gamla notationen med blanktecken mellan de avslutande vinkelparenteserna  förstås fortfarande är giltig. Så den här ändringen påverkar inte gammal kod.

 

Publicerad i C/C++

Kategorier

LinkedIn Auto Publish Powered By : XYZScripts.com