- 1
x*x = new x;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+3
x*x = new x;
Уравнение?
+81
int i=0;
for (;i<5;
printf("%d",i);
i++;
);
+30
InputMapping* GetInputMapping(unsigned int index)
{
InputMapping* inputMapping = NULL;
switch (index)
{
// Movement
case 0:
return &m_LeftStickMapping[InputBindings::StickDirUp];
case 1:
return &m_LeftStickMapping[InputBindings::StickDirDown];
case 2:
return &m_LeftStickMapping[InputBindings::StickDirLeft];
case 3:
return &m_LeftStickMapping[InputBindings::StickDirRight];
// Actions
case 4:
return &m_ButtonMappings[Pad::ShoulderRight1];
case 5:
return &m_ButtonMappings[Pad::Button2];
case 6:
return &m_ButtonMappings[Pad::Button4];
case 7:
return &m_ButtonMappings[Pad::Button3];
case 8:
return &m_ButtonMappings[Pad::Button1];
// Weapons
case 9:
return &m_ButtonMappings[Pad::PadLeft];
case 10:
return &m_ButtonMappings[Pad::PadUp];
case 11:
return &m_ButtonMappings[Pad::PadRight];
case 12:
return &m_ButtonMappings[Pad::PadDown];
case 13: // weapon wheel
return &m_ButtonMappings[Pad::ShoulderRight2];
// Camera
case 14:
return &m_RightStickMapping[InputBindings::StickDirUp];
case 15:
return &m_RightStickMapping[InputBindings::StickDirDown];
case 16:
return &m_RightStickMapping[InputBindings::StickDirLeft];
case 17:
return &m_RightStickMapping[InputBindings::StickDirRight];
case 18:
return &m_ButtonMappings[Pad::ShoulderLeft1];
case 19:
return &m_ButtonMappings[Pad::ShoulderLeft2];
case 20:
return &m_ButtonMappings[Pad::StickRight];
// Menus
case 21:
return &m_ButtonMappings[Pad::Select];
case 22:
return &m_ButtonMappings[Pad::Start];
// First-person camera
case 23:
return &m_ButtonMappings[Pad::StickLeft];
default:
return NULL;
}
return NULL;
}
Массивы? Не, не слышал.
+20
void File::open(string file, bool readAccess, bool writeAccess, bool append)
{
Close();
(string&)Name=file;
const char* const modes[2][2][2]={{{null, "rb"}, {"wb", "w+b"}}, {{null, null}, {"ab", "a+b"}}};
if(modes[append][writeAccess][readAccess]==null) return InternalError("Создание файла с неверными параметрами!");
handle=fopen(Name.CStr(), modes[append][writeAccess][readAccess]);
if(handle==null) throw NotFoundException(string::Format("Файл <^> не найден!")(file));
}
Скорее всего, этот код вам покажется странным, поэтому я его выкладываю. Хотя я его говнокодом не считаю и он мне даже нравится.
+31
#include <iostream>
using namespace std;
struct RefStruct {
RefStruct(int &ref) :
m_ref(ref)
{}
int getRefValue() const {
return m_ref;
}
private:
int &m_ref;
};
int main(int argc, char *argv[]) {
int a = 0xa;
int b = 0xb;
RefStruct s(a);
RefStruct *p = &s;
*(reinterpret_cast<int **>(p)) = &b;
cout << "RefValue: " << hex << s.getRefValue() << endl;
return 0;
}
С другом разговаривали - как бы получить указатель на ссылку.
Как вы думаете, что будет на выхлопе?
+32
typedef typename _STD tr1::conditional<
_STD tr1::is_same<key_type, value_type>::value,
const_iterator,
_Tree_iterator<_Mybase> >::type iterator;
Шаблоны на шаблонах и шаблонами погоняют.
+24
Fixed f = 0.2;
f = std::abs(f);
std::cout << (float)f;
Угадайте, чему будет равно f?
Fixed - тип из той же библиотеки, что и в http://govnokod.ru/11294
+24
do
{
count++;
Xt=X;
if (ii==1)
{
X= dichotomia(a,b, E);
fprintf(bnf, "%lf;\n", Xt);
}
else
{
if (ii==2)
{
X=newton(X, E);
fprintf(bnf, "%lf;\n", Xt);
}
else
{
if (ii==3)
{
X=sekuschich(X, b);
fprintf(bnf, "%lf;\n", Xt);
}
else
{
if (ii==4)
{
ii==1;
ii==2;
ii==3;
}
}
}
}
printf("X=%lf\n", X);
if(Func(X)*Func(a)>0)a=X;
else b=X;
}
while(fabs(X-Xt)>=E);
В общем лаба на численые методы поиска корней.
После того как я предоставил няшный, полностью удовлетворяющий условиям, после проверки меня попросили "сделать как у парней", и вот участок их высера
p.s. форматирование сохранить не удалось, да и там совсем бы ничего понятно бы не было
+16
template<typename T1, typename T2, size_t OFFSET = 8>
struct EnumMult
{
template<T1 t1, T2 t2>
struct Static
{
static const size_t V = (t1 << OFFSET) | t2;
};
static size_t Dynamic(T1 t1, T2 t2)
{
return (t1 << OFFSET) | t2;
}
};
// example
#include <iostream>
enum Suit
{
SPADES,
CLUBS,
DIAMONDS,
HEARTS
};
enum Value
{
SEVEN,
EIGHT,
NINE,
TEN,
JACK,
QUEEN,
KING,
ACE
};
int main()
{
typedef EnumMult<Suit, Value> CardMult;
switch (CardMult::Dynamic(CLUBS, SEVEN))
{
case CardMult::Static<SPADES, ACE>::V:
std::cout << "ACE OF SPADES";
break;
case CardMult::Static<CLUBS, SEVEN>::V:
std::cout << "HOOK";
break;
default:
std::cout << "NOTHING SPECIAL";
}
std::cout << std::endl;
return 0;
}
Понадобилось обработать два enum'а конструкцией switch-case, подумал, что было бы круто сделать квадратный свитч-кейс, но пришла и другая идиотская идея: шаблон для декартова умножения двух енумов. Заранее извините, если паттерн известный.
+26
input >> heap;
while( heap[0] == '0' ) heap.erase( 0, 1 );
heaps.push_back( heap );
input >> heap;
while( heap[0] == '0' ) heap.erase( 0, 1 );
heaps.push_back( heap );
input >> heap;
while( heap[0] == '0' ) heap.erase( 0, 1 );
heaps.push_back( heap );