- 1
- 2
- 3
- 4
- 5
- 6
#define DOISA(x,p,y) \
ClassID x::isA() const{return y;} \
MYBoolean x::isA(ClassID i) const \
{ \
return (i == x::isA() ? TRUE : p::isA(i)); \
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+153
#define DOISA(x,p,y) \
ClassID x::isA() const{return y;} \
MYBoolean x::isA(ClassID i) const \
{ \
return (i == x::isA() ? TRUE : p::isA(i)); \
}
Ядро большого проекта. Имеется довольно большая иерархия наследуемых классов с виртуальными методами isA(). Все эти методы зачем-то сворачиваются в этот макрос.
+158
switch(filter)
{
case FILTER_SPECIAL:
{
if ( ( u8Direction >= 0xF0 ) || ( u8Direction <= 0x0F ) )
{
return 0x0;
}
else if ( ( u8Direction >= 0x10 ) && ( u8Direction <= 0x2F ) )
{
return 0x2;
}
else if ( ( u8Direction >= 0x30 ) && ( u8Direction <= 0x4F ) )
{
return 0x4;
}
else if ( ( u8Direction >= 0x50 ) && ( u8Direction <= 0x7F ) )
{
return 0x6;
}
else if ( u8Direction == 0x80 )
{
return 0x8;
}
else if ( ( u8Direction >= 0x81 ) && ( u8Direction <= 0xAF ) )
{
return 0xA;
}
else if ( ( u8Direction >= 0xB0 ) && ( u8Direction <= 0xCF ) )
{
return 0xC;
}
else if ( ( u8Direction >= 0xD0 ) && ( u8Direction <= 0xEF ) )
{
return 0xE;
}
break;
}
case FILTER_NORMAL:
--//--
break;
case FILTER_BACKWARD_DIRECTION:
--//--
break;
}
Сферический индокод в вакууме
+164
std::string str(bool val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(short val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(unsigned short val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(int val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(unsigned int val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(long val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(unsigned long val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(float val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(double val) {
std::stringstream ss;
ss << val;
return ss.str();
}
std::string str(long double val) {
std::stringstream ss;
ss << val;
return ss.str();
}
Вот что значит невыспанная голова!
Чуть позже переделал в это
template<class T>
std::string str(T val) {
std::stringstream ss;
ss << val;
return ss.str();
}
+160
m_lActiveTab = GetCurSel();
for (int i = 0; i < GetItemCount(); i++)
m_cItemSelected[m_lActiveTab] = false;
m_cItemSelected[m_lActiveTab] = true;
Вот так говнокодят в крупных проектах
+160
int S;
int A;
int random_integer = (rand()%3);
cout<<"Skolko vsego palochek\n";
cin>>S;
cout<<"Komp zaberaet\n";
S-=random_integer;
cout<<s<<"\n";>>A;
S-=A;
if (S==8) S-=3; cout<<"Komp Zaberaet\n";
if (S==7) S-=2; cout<<"Komp Zaberaet\n";
if (S==6) S-=1; cout<<"Komp Zaberaet\n";
if (S==4) S-=3; cout<<"Komp Zaberaet\n";
if (S==3) S-=2; cout<<"Komp Zaberaet\n";
if (S==2) S-=1; cout<<"Komp Zaberaet\n";
else
if (A==1) S-=3; cout<<"Komp Zaberaet\n";
if (A==2) S-=2; cout<<"Komp Zaberaet\n";
if (A==3) S-=1; cout<<"Komp Zaberaet\n";
cout<<s<<"\n";>>A;
if (S<=0) cout<<"Vu proigrali\n";
if (A!=3 && A!=2 && A!=1) cout<<"Mogno tolko ot 1-3 palochek\n";
Вот такой суровый говнокод я встретил в одном из вопросов ВиО. То что код не рабочий и так понятно.
+157
MYCString myexport
operator+(const MYCString& s, const char* pstr)
{
return MYCString(s, pstr); // Use the special concatenation constructor
}
MYCString myexport
operator+(const char* c, const MYCString& s)
{
return MYCString(c) + s.data();
}
MYCString myexport
operator+(const MYCString& a, const MYCString& s)
{
return a + s.data();
}
Название класса изменено. Он встречается в одном большом проекте в библиотеке-заменителе STL )
+144
#include <iostream>
#include <string>
#include <ctime>
using namespace std;
template <typename T>
void SwowArray(T arr[], int n); // #A
template <typename T>
void ShowArray(T * arr[], int n); // #B
struct debts
{
char name[50];
double amount;
};
int main()
{
int things[6] = {12, 34, 43, 21, 56, 666};
struct debts mr_dick[3] =
{
{"Pizdabol Ivan", 999.0},
{"Xuesos Vasya", 45.0},
{"Prostitutka Alla", 548.0}
};
double * pedo[3];
for(int i = 0; i < 3; i++)
{
pedo[i] = &mr_dick[i].amount;
}
cout << "Trololo Mr.Dick: \n";
ShowArray(things, 6);
cout << "Listening Debilov: \n";
ShowArray(pedo, 3);
cin.ignore();
cin.get();
return 0;
}
// #A
template <typename T> void ShowArray(T arr[], int n)
{
cout << "Template A \n";
for(int i = 0; i < n; i++)
cout <<arr[i]<<" ";
cout << endl;
}
template <typename T> void ShowArray(T * arr[], int n)
{
cout << "Template B \n";
for(int i = 0; i<n; i++)
cout <<*arr[i]<< " ";
cout << endl;
}
не могу понять почему выводится ошибка, как бы не должно ее быть, компилятор указывает на 34 строку
+165
throw new std::bad_alloc();
У нас в кодеконвеншене принято передавать исключения по указателю. Вчера обнаружил вот это во многих перегрузках оператора new, да и в прочих местах по проекту.
+168
SystemDiskLogSingleton::Instance().Add("Системный диск не отвечает на попытки записи данных. Возможно завис его драйвер.", 152, SystemDiskAccessError);
printStr("Системный диск висит. Обратитесь к системному администратору.");
loo54: goto loo54;
Вот такое нашёл в проекте нашего встроенного устройства. Есть один единственный диск в системе. В лог-файл записываются сообщения о различных ошибках. Оказалось, что и сообщение об ошибках доступа к этому диску тоже.
+165
//где-то в далеком-далеком хедере
typedef long SystemID;
// в коде
long FARPASCAL sb_ConfigureSystem(SystemID s)
{
.......
System * sys = (System*)s;
......
}
И в таком духе весь проект.