- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
class ClassA
{
};
class ClassB : private ClassA
{
public:
ClassA& AsClassA()
{
return *this;
}
};
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+22
class ClassA
{
};
class ClassB : private ClassA
{
public:
ClassA& AsClassA()
{
return *this;
}
};
+22
template<class T>
class Box
{
private:
explicit Box(const Box&);
Box& operator = (const Box&);
public:
explicit Box()
: m_value(0)
{}
explicit Box(T* value)
: m_value(value)
{}
~Box()
{
std::auto_ptr <T> toDelete(m_value);
}
T* Release()
{
T* const result(m_value);
m_value = 0;
return result;
}
void Reset(T* value)
{
std::auto_ptr <T> toDelete(m_value);
m_value = value;
}
private:
T* m_value;
};
+24
#define TRUE (1)
#define FALSE (0)
#define internal protected:
#define external public:
#define declareSuper(superClass) protected: typedef superClass super
Оттуда.
+14
[code=cpp]
#include <iostream>
#include <cmath>
void foo(double x, double y)
{
if (std::cos(x) != std::cos(y))
std::cout << "Я знаю точно невозможное возможно";
}
int main()
{
foo(1.0, 1.0);
return 0;
}
[/code]
floatы и нуб.
+18
using namespace boost;
typedef filesystem::recursive_directory_iterator dir_iter_t;
dir_iter_t itt(filesystem::current_path());
while ([&](dir_iter_t &itter) -> decltype(itter)
{
std::cout << boost::filesystem::path((*itter++).path()).make_preferred().string() << std::endl;
return itter;
}(itt) != dir_iter_t());
Вчера ночью написал сие чудо , сегодня когда увидел - меня чуть приступ не хватил.
Выводит в консоль всё содержимое текущего каталога и всех вложенных.
+21
extern struct BloodRainPersonage
{
} bloodRainPersonage, * pBloodRainPersonage;
Мне даже нечего сказать...
+24
QString("a=%1 b=%2").arg("[%1]").arg("Shit happens")
Вы думаете, что результат будет "a=[%1] b=Shit happens"?
Как бы не так! "a=[Shit happens] b=%2".
Причем эта "фича" вполне документирована. Но документирована она не в самом первом описании arg'а, а только в arg(const QString &a1, const QString &a2), в доку по которому я естественно никогда не заглядывал...
UPD: правильным вариантом будет QString("a=%1 b=%2").arg("[%1]", "Shit happens"), но тогда мы лишаемся поддержки форматирования, да и таким образом можно засунуть максимум 10 аргументов.
+15
for(int y=0; y<height; ++y)
{
for(int x=0; x<width; ++x)
b[y,x] = a[y,x];
}
+16
struct WideParams
{
WideParams(size_t CountParameters...):
Посоны, это бомба. Вот что я обнаружил в проекте.
+19
//generate the new objects
EnterCriticalSection(&csWinEvent);
value arr = alloc_array(windowStates.size());
int i=0;
for(
std::tr1::unordered_map<int,windowState>::const_iterator it = windowStates.begin();
it!=windowStates.end();
++it )
{
value o = alloc_empty_object();
//int hwnd
//int x,y,w,h
//int minimized,maximized,restored,closed
alloc_field(o, val_id("hwnd"), alloc_int(it->first));
alloc_field(o, val_id("window"), *(value*)GetWindowLongPtr((HWND)it->first,GWLP_USERDATA) );
alloc_field(o, val_id("x"), alloc_int(it->second.x));
alloc_field(o, val_id("y"), alloc_int(it->second.y));
alloc_field(o, val_id("w"), alloc_int(it->second.w));
alloc_field(o, val_id("h"), alloc_int(it->second.h));
alloc_field(o, val_id("minimized"), alloc_int(it->second.minimized));
alloc_field(o, val_id("maximized"), alloc_int(it->second.maximized));
alloc_field(o, val_id("restored"), alloc_int(it->second.restored));
alloc_field(o, val_id("closed"), alloc_int(it->second.closed));
val_array_set_i(arr,i,o);
++i;
}
windowStates.clear();
LeaveCriticalSection(&csWinEvent);
Casts ;]