- 1
notified.insert( (void*)dns, (void*)42 );
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+162
notified.insert( (void*)dns, (void*)42 );
Порадовал юмор разработчиков QT. Им было нужно какое-то магическое значение указателя для внутренних нужд. Они выбрали это.
http://habrahabr.ru/blogs/qt_software/123603/#comment_4059719
+163
WCHAR *qStringToWideChar(const QString &str) {
if (str.isNull())
return 0;
WCHAR *result = new WCHAR[str.length() + 1];
for (unsigned int i = 0; i < str.length(); ++i)
result[i] = str[i].unicode();
result[str.length()] = 0;
return result;
}
Опять неосиляторы ассистента издеваются над Qt.
+147
#include <math.h>
#include <iostream>
#include <conio.h>
#include <istream>
using namespace std;
class Complex{
public:
double real;
double image;
Complex(){};
Complex(double re){real = re; image = 0;}
Complex(double re, double im){real = re ; image = im ;}
~Complex(){}
Complex & operator=(Complex &);
Complex & operator=(double);
double abs(){
return sqrt(real * real + image * image);
}
double arg(){
return (2*atan(image/(real+abs())));
}
double imag(){
return image;
}
double re(){
return real;
}
inline friend Complex operator+(const Complex, const Complex);
Complex operator+();
inline friend Complex operator-(const Complex, const Complex);
inline friend Complex operator*(const Complex, const Complex);
inline friend Complex operator*(Complex, double);
inline friend Complex operator/(const Complex, const Complex);
inline friend Complex operator/(const Complex, const double);
inline friend Complex operator+=(Complex, Complex);
inline friend Complex operator+=(Complex, double);
inline Complex conj(Complex fp1);
inline Complex Complex::expon(Complex fp1);
inline Complex Complex::sinus(Complex fp1);
inline Complex Complex::cosinus(Complex fp1);
inline Complex Complex::hypercosinus(Complex fp1);
inline Complex Complex::hypersinus(Complex fp1);
inline Complex Complex::logarithm(Complex fp1);
friend ostream &operator<<(ostream &, Complex &);
friend istream &operator>>(istream &, Complex &);
};
const Complex _i = Complex(0,1);
Complex Complex::operator+()
{
return *this;
}
Complex operator+(const Complex fp1, const Complex fp2)
{
Complex fp;
fp.real = fp1.real + fp2.real;
fp.image = fp1.image + fp2.image;
return fp;
}
Complex operator+=(Complex fp1, Complex fp2)
{
fp1.real = fp1.real + fp2.real;
fp1.image = fp1.image + fp2.image;
return fp1;
}
Complex operator+=(Complex fp1, double dbl)
{
fp1.real = fp1.real + dbl;
return fp1;
}
Complex operator-(const Complex fp1, const Complex fp2)
{
Complex fp;
fp.real = fp1.real - fp2.real;
fp.image = fp1.image - fp2.image;
return fp;
}
Complex operator*(const Complex fp1, const Complex fp2)
{
Complex fp;
fp.real = fp1.real * fp2.real - fp1.image * fp2.image;
fp.image = fp1.real * fp2.image + fp1.image * fp2.real;
return fp;
}
Complex operator*(Complex fp1, double dbl)
{
fp1.real = dbl * fp1.real;
fp1.image = dbl * fp1.image;
return fp1;
}
Complex operator/(const Complex fp1, const Complex fp2)
{
double k;
Complex fp;
лаба по ИВТ.. класс для работы с комплексными числами
+166
#include <iostream>
using namespace std;
int main () {
for( struct {int i; long i2;} x = {1, 1};
x.i2 <= 100;
x.i++, x.i2 = x.i * x.i ) {
cout << x.i2 << endl;
}
return 0;
}
Поскольку реального ГК нет, добавлю синтетического.
NB: Под MSVC такое не пройдет. g++ - ok: http://codepad.org/JesKsnMQ
http://jia3ep.blogspot.com/2010/07/struct-in-for-loop.html
+166
// say this is some existing structure. And we want to use
// a list. We can tell it that the next pointer
// is apple::next.
struct apple {
int data;
apple * next;
};
// simple example of a minimal intrusive list. Could specify the
// member pointer as template argument too, if we wanted:
// template<typename E, E *E::*next_ptr>
template<typename E>
struct List {
List(E *E::*next_ptr):head(0), next_ptr(next_ptr) { }
void add(E &e) {
// access its next pointer by the member pointer
e.*next_ptr = head;
head = &e;
}
E * head;
E *E::*next_ptr;
};
int main() {
List<apple> lst(&apple::next);
apple a;
lst.add(a);
}
c++ страшный язык :) (часть вторая)
C++: Pointer to class data member: http://stackoverflow.com/questions/670734/c-pointer-to-class-data-member
Такие конструкции "E *E::*next_ptr;" без подготовки не осилить.
+147
try
{
// A lot of code
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
:) Обработка исключений
+163
#include <stdio.h>
const int (&getArray())[10] {
static int tmp[10] = {1,2,3,4,5,6,7,8,9,10};
return tmp;
}
void foo(const int (&refArr)[10])
{
size_t size = sizeof(refArr); // returns 10*sizeof(int)
printf ("Array size: %d\r\n", size);
}
int main() {
foo(getArray());
printf ("%d", getArray()[0]);
for (size_t i=1; i<sizeof(getArray())/sizeof(getArray()[0]); ++i)
printf (",%d", getArray()[i]);
return 0;
}
http://codepad.org/rPl6b7IS
c++ страшный язык :)
Извращения на тему: http://heifner.blogspot.com/2005/06/c-reference-to-array.html
+181
#include "iostream"
using namespace std;
enum {MaxFucktorial=13};
static int fucks[MaxFucktorial+1];
template<const int ValuePosition, const int Value>
struct initFuckedValue
{
enum {CurrentValue=Value*ValuePosition};
static void fuckUp(void)
{
fucks[ValuePosition]=CurrentValue;
initFuckedValue<ValuePosition+1, CurrentValue>::fuckUp();
};
};
template<const int Value>
struct initFuckedValue<MaxFucktorial, Value>
{
static void fuckUp(void){};
};
void InitFucks(void)
{
fucks[0]=1;
initFuckedValue<1,1>::fuckUp();
};
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"Введите аргумент факториала: "<<endl;
InitFucks();
int fuckArg=0;
cin>>fuckArg;
cout<<"Начинаем считать факториал..."<<endl
<<"Подсчёт факториала успешно завершён. ОК."<<endl
<<"Результат: "<<fucks[fuckArg]<<endl;
cin>>fuckArg;
return 0;
}
Решил запостить всё. Жемчужена.
Мой знакомый, молодой преподаватель-аспирант из института пришёл однажды расстроенный. Спрашиваю у него: "Что случилось?"
-- "Один мой первокурсник, когда я дал ему задание посчитать факториал через рекурсию принёс мне какую-то непонятную компилирующуюся галиматью. И считает она уж слишком быстро... Это какая-то программа обманка. Вообщем я ему поставил 2."
Да, это лаба. ^_^
+147
int __fastcall TForm1::iscomm(AnsiString str)
{
int i=1;
while (str[i]==' ')
i++;
if (str[i]=='#')
{
return 1;
}
else
{
return 0;
};
};
+147
cout<<"enterX"<<endl;
cin >>x;
x = 0.125;