- 1
- 2
- 3
- 4
- 5
#include "alloca.h"
//...
template<class o>
o*MakeOAtStack(){
return (o*)alloca(sizeof(o));};//;;;Оптимизировоной operator new nothrow
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 188
+166
#include "alloca.h"
//...
template<class o>
o*MakeOAtStack(){
return (o*)alloca(sizeof(o));};//;;;Оптимизировоной operator new nothrow
+167
char *sLoop = new char[4];
_itoa(i, sLoop, 10);
string strField = fp1 + sLoop + fp2;
char *str = new char[255];
for (int i=0; i<=sizeof(strField); i++)
str[i] = strField[i];
_bstr_t impFieldName(str);
// думаю, очевдно, что delete нигде не было. ;)
+161
int b;
int c();
template<class u, class v>
struct IsSameType
{
enum {r=0};
};
template<class u>
struct IsSameType<u,u>
{
enum {r=1};
};
//...
cout<<IsSameType<decltype(b),decltype(c())>::r<<endl;
cout<<IsSameType<decltype(b),decltype((b))>::r<<endl;
cout<<IsSameType<decltype(c()),decltype((b))>::r<<endl;
Сегодня увидим новую плюшку, что нам подарил новый стандарт С++0х.
1)Что на экране получим после выполнения данной программы?
2)Какие реально decltype возвращает типы в данных случаях?
Желательно ответить на оба вопроса, не компилируя. ^_^
+162
#include<thread>
void f();
struct F {
void operator()();
};
int main()
{
std::thread t1{f}; // f() executes in separate thread
std::thread t2{F()}; // F()() executes in separate thread
}
Фигурные скобочки t1{f}; , используемые где только можно не перестают доставлять.
http://www2.research.att.com/~bs/C++0xFAQ.html
+152
int main()
{
unsigned long l = 0xffc00000;
float f1,f2;
memcpy(&f1,&l,4);
memcpy(&f2,&l,4);
if(f1!=f2)printf("OH, SHI~!\n");
if(f1!=f1)printf("Facepalm!\n");
}
>Давно хотел провести эксперимент, вот только сейчас руки дошли.
Лог программы:
OH, SHI~!
Facepalm!
>Кто-нибудь знает причину подобного феномена?
Эксперемент не мой и я знаю причину такого поведения. Так что не плохой вопрос для собеседования к новичкам.
+165
log::write(std::string() + "Opened \"" + filename + "\"");
История не моя, но приложу её к коду:
>Несколько лет назад у нас в проекте была такая строчка кода
Функция log::write() принимала форматную строку и набор аргументов, как printf.
Если имя файла содержит %, возможны неприятности, но такие файлы обычно не встречаются.
Я когда это увидел, очень резко прокоментировал способности и интелектуальный уровень того, кто так написал.
Как же так, если файл называется скажем "%s", программа грохнется с вероятностью близкой к 100%!
Как оказалось, этот кусок кода писала жена начальника.
Морские свинки и программистки, ага.
Кажется она сильно обиделась, меня уволили.
+178
#define float double
Так в последнем, полученном мною, для поддержки проекте произвели увеличение точности расчётов.
+164
for(int i(0); i<5; i++)
Мне интересно, кто-нибудь так же пишет?
+158
typedef int IntHack;
const intHack operator+(const intHack, const intHack)
{
Счастливой отладки. ^_^
+161
struct Matrix
{
float c[4][4];
float (&operator[](int idx))[4] {
return c[idx];
}
};