in Computing and stuff

Lets talk C++

Има едно видео за скриптовите езици, което бая ме забавлява :).
Аз се порових, stackoverflow и из стар код. Та.


C++;

Резултат: 14 … WAT.

strlen връща size_t, което бидейки unsigned по стандарт, каства -1 до unsigned, което е всъщност едно доста голямо число :).
if (strLength < -1.f) обаче работи както трябва (понеже по стандарт се каства до най-големия тип с плаваща запетая, ако има такъв).


C++; 11;

аuto като feature ползва механизма на template-ите за определяне на типа. Звездичката, която седи там е безсмислена, но може да я има.


C++;
На първият ред декларираме int* ptr, и int value = NULL – което е все едно:
int* ptr;int value = 0; … Неинициализиран ptr и int със стойност 0. nullptr решава част от недоразумението.


C++;

Недефинирна резултат … Cтандарта указва какво влияние имат битовите операции върху signed типове. В по-голямата си част са undefined, а в другата е доста оплетено.


C++;

Това се компилира. То е етикет за goto с име http, а след него има коментар code-bg.com


C++;

Унарният оператор + създава копие :).


C++;

std::cout няма предефиниран оператор с volatile .. А понеже всеки указател може да се конвертира до bool, в случая това се случва ..


Останалите за друг път.
А за бонус, този ред:

Write a Comment

Comment


*

  1. It is interesting how two LL would change it.
    But only on 32-bit builds
    auto str = “Let’s talk C++”;
    auto strLength = strlen(str);
    std::cout << strLength << " … " << std::endl;
    if (strLength < -1LL)
    std::cout << "WAT." << std::endl;