- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
#include <iostream>
using namespace std;
int main() {
int i = 5;
int* p1 = &i;
volatile int* p2 = &i;
cout << p1 << endl;
cout << p2 << endl;
return 0;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+56
#include <iostream>
using namespace std;
int main() {
int i = 5;
int* p1 = &i;
volatile int* p2 = &i;
cout << p1 << endl;
cout << p2 << endl;
return 0;
}
http://ideone.com/hpw4CB
интересно, какие были исторические причины запрета приведения volatile void * к const void *
Сhange: Only pointers to non-const and non-volatile objects may be implicitly сonverted to void*
Rationale: This improves type safety.
Effect on original feature: Deletion of semantically well-defined feature.
Difficulty of converting: Could be automated. A C program containing such an implicit conversion from, e.g., pointer-to-const-object to void* will receive a diagnostic message. The correction is to add an explicit cast.
How widely used: Seldom.
std:cout по-разному реагирует на (int *) и на (volatile int *) — для него это разные типы.
P.S. На слова const и static он почему-то так не реагирует.
давно своими руками volatile писал?
Один вброс Страуструпа приводит к вбросу созданному в коде стандартной библиотеки гцц, который привел к вбросу на говнокоде. Осталось дождаться пока вброс на говнокоде приведет к очередному вбросу.
А я ещё не верил в сюжет фильма Ёлки.
Из вброса на говнокоде идея прочно внедряется в мозг и искоренить её невозможно.
Посмотри фильм Inception.
http://habrastorage.org/storage/habraeffect/7e/c6/7ec6526b2a6fa85a30736912c357c5b3.jpg
плюсанул тебя, наревел
Наверняка программисты понимают это кино по-своему. Я смотрел и видел раскрутку стека при throw исключения с моста