- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
// DIE, you, nasty context!
while(GetLastError()!=0)
{
//You will soon become NON-BUSY!
SetLastError(0);
wglDeleteContext(glcontext);
std::cout<<GetLastError()<<"\n";
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+164
// DIE, you, nasty context!
while(GetLastError()!=0)
{
//You will soon become NON-BUSY!
SetLastError(0);
wglDeleteContext(glcontext);
std::cout<<GetLastError()<<"\n";
}
Trying to delete my busy OpenGL context from other thread ;]
+170
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main()
{ //ввод исходных данных
short int i, j, k, l;
printf("i="); scanf("%d",&i);
printf("j="); scanf("%d",&j);
printf("k="); scanf("%d",&k);
printf("l="); scanf("%d",&l);
if ((k==i+2) && (l==j+1)); else
if ((k==i+2) && (l==j-1)); else
if ((k==i-2) && (l==j+1)); else
if ((k==i-2) && (i==j-1)); else
if ((k==j+2) && (l==i+1)); else
if ((k==j+2) && (l==i-1)); else
if ((k==j-2) && (l==i+1)); else
if ((k==j-2) && (l==i-1))
printf("k= %d", k);
printf("l= %d", l);
//конь встал на нужную точку
getch();
}
http://otvet.mail.ru/question/64546141/
+155
#include <iostream>
#include <memory>
#include <assert.h>
using namespace std;
template <class T>
class megaClass
{
public:
void hello()
{
assert(dynamic_cast<T*>(this)!=NULL);
static_cast<T*>(this)->hello();
}
virtual ~megaClass() {}
};
class cleft : public megaClass<cleft>
{
public:
void hello()
{
std::cout << "left::hello()" << std::endl;
}
};
class cright : public megaClass<cright>
{
public:
void hello()
{
std::cout << "right::hello()" << std::endl;
}
};
int main()
{
scoped_ptr<megaClass<cleft> > a1=new cleft;
a1->hello();
scoped_ptr<megaClass<cright> > a2=new cright;
a2->hello();
return 0;
}
Пытался продемонстрировать статический полиморфизм TarasB и получилась такая какашка. Кто действительно крут и может сабдж продемонстрировать? Я где-то видел пример, но не помню где...
Ещё продемонстрировал статический полиморфизм через стратегии:
struct Strategy1
{
static void do(){printf("Lol1");}
};
struct Strategy2
{
static void do(){printf("Lol2");}
};
template<class Strategy>
class MegaClass
{public:
void do()
{
printf("Mega");
Strategy::do();//Класс Strategy можно было и создать для хранения состояния.
printf("/n\");
}
};
//...
Дальше в разных частях кода создаем:
MegaClass<Strategy1> o;
o.do();
//...
MegaClass<Strategy2> o;
o.do();"Один" класс ведёт себя по разному. Понятно, что это не совсем полиморфизм. Но очень часто именно в таком контексте используют динамический полиморфизм, хотя такого статического здесь достаточно выше крыши.http://govnokod.ru/8025#comment110773Class1 o1;
foo(o1);
Class2 o2;
foo(o2);
void foo(Class1 o){/*...*/};
void foo(Class2 o){/*...*/};+169
if(this->connectionState)
{
db_Model->clear();
db_Model->setTable("lh_chat_archive");
db_Model->setRelation(6, QSqlRelation("lh_profiles", "id", "last_name"));
db_Model->setEditStrategy(QSqlRelationalTableModel::OnManualSubmit);
db_Model->removeColumn(0);
db_Model->removeColumn(0);
db_Model->removeColumn(0);
db_Model->removeColumn(0);
db_Model->removeColumn(0);
db_Model->removeColumn(2);
db_Model->removeColumn(2);
db_Model->removeColumn(2);
db_Model->removeColumn(3);
db_Model->removeColumn(3);
db_Model->removeColumn(3);
db_Model->removeColumn(3);
db_Model->removeColumn(3);
db_Model->removeColumn(3);
db_Model->removeColumn(3);
db_Model->removeColumn(3);
db_Model->removeColumn(3);
db_Model->removeColumn(3);
db_Model->removeColumn(3);
db_Model->select();
db_Model->setHeaderData(0, Qt::Horizontal, trUtf8("Клиент"));
db_Model->setHeaderData(1, Qt::Horizontal, trUtf8("Менеджер"));
mapper->setModel(db_Model);
mapper->setItemDelegate(new QSqlRelationalDelegate(this));
}
Сотрудник фирмы таким образом избавился от ненужных столбцов в выборке. На вопрос: "А как быть если столбцов много?", ответа не последовало...
+150
Люди, помогите решить такой вопрос. Приведу пример:
Есть программист Петя. Он прочитал очень много книг по программированию,
и вообще умный парень :). И, так как, Петя прочитал много умных книг (Александреску к примеру),
он соответственно пишет умный код, используя различные фишки с++, например,
очень любит шаблоны (такие вещи типа статического полиморфизма и еще много
всего связанного с шаблонами и обобщенным программированием) или использует
сложные тернарные операторы… ну и т.д. … Соответственно код работает и все хорошо.
Как-то в разговоре с Петей ему сказали, что если так прогать, то может получиться
непрозрачный код.
На что он ответил: «Если алгоритм написан верно, и Каму-то непонятен код, то
проблема в том что человек просто плохо образован в плане программирования.
Ибо кто-то, например, не знает что такое классы и ему будет не прозрачен код,
в котором используют классы или обычное наследование. И соответственно не
писать же все процедурно, из-за того, что кто-то не знает что такое классы.
А само понятие прозрачности кода - ерунда ».
От сюда вопрос, Прав ли Петя и что такое вообще «Прозрачность кода»?
Или действительно код не может быть написан «Заумно», а тот, кто так
считает, просто плохо знает стандарт языка.
Вопрос совершенно серьёзный. //Не холивар.
+167
for(byte i = 3;i<129;++i)
(state.programImpl[i])(state);
Мне достался на поддержку этот проект. Это основной цикл программы, хотя их несколько. Есть некоторый массив, заполненный алгоритмом программыфункциями через
PI programImpl= {
beginPrg,
//...
};В зависимости от выполнения различных условий state.programImpl самомодифицируется во время выполнения этого цикла. Мне хочется сказать: "Возьми Lisp и никогда более не берись за С++!". А вообще, в этом проекте эта самомодификация просто не нужна. А теперь вопрос: "Что у человека с головой?"
+178
static long get_ver(unsigned short *src, unsigned char *dst)
{
u8 tmp_buf[16];
s32 i = 0;
while(1)
{
if(dst[i] < '0' || dst[i] > '9')
break;
tmp_buf[i] = dst[i] % 0x30;
i++;
}
if(i == 1)
*src = tmp_buf[0];
else if(i == 2)
*src = (tmp_buf[0] * 10) + tmp_buf[1];
else if(i == 3)
*src = (tmp_buf[0] * 100) + (tmp_buf[1] * 10) + tmp_buf[2];
else if(i == 4)
*src = (tmp_buf[0] * 1000) + (tmp_buf[1] * 100) + (tmp_buf[2] * 10) + tmp_buf[3];
return i;
}
Функция читает из dst и пишет в src O_O
+163
void __fastcall TManageForm::bAnyCentralizerClick(TObject *Sender)
{
TBitBtn *Item = dynamic_cast<TBitBtn *>(Sender);
int bit=0; // по умолчанию - схват продольной, выход 0 платы 1
if ( Item->Name == bThicknessCentralizer->Name)
bit=6; // если схват толщины - выход 6 платы 1
if (Item->Caption==centr_open)
bit++; // "разжать" - всегда следующий выход после сжать
a1->SetOutBit(bit);
}
Выставление дискретного выхода по дебильному алгоритму. Хотел как лучше, а получилось как всегда)))
+151
void f_ai(intrusive_ptr<serial> i);
//...
static serial ai;
serial* ii=&ai;
//...
f_ai(ii);
Компилируется, а потом грохается. С++ такой Си...
+165
temp = new LIST;
temp = ptr->next;
ptr->next = ptr;
ptr = temp;
Так меняют указатели местами при сортировке списка.