- 1
int eger;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−43
int eger;
−32
#pragma once
#include <vector>
#include <assert.h>
class Obj
{
public:
virtual ~Obj(void) { }
};
class Sig
{
typedef void (Obj::*slot_t)(void*);
mutable std::vector<std::pair<Obj*, Sig::slot_t>> m_connSlots;
public:
void operator()(void* arg) const
{
std::vector< std::pair<Obj *, slot_t> >::const_iterator iter = m_connSlots.cbegin();
while(iter != m_connSlots.cend())
{
Obj * object = iter->first;
slot_t slot = iter->second;
(object->*slot)(arg);
iter++;
}
}
template<class obj_T> void connect(obj_T* object, void (obj_T::*slot)(void*)) const
{
assert(dynamic_cast<Obj*>(object)!=0);
m_connSlots.push_back(std::make_pair(reinterpret_cast<Obj*>(object),
reinterpret_cast<Sig::slot_t>(slot)));
}
};
QBicycle
−32
//
// std::string wrapper
//
namespace priv {
class string {
std::string &m_s;
std::string &(std::string::*m_pAssign1)( const char *, std::string::size_type );
std::string &(std::string::*m_pAssign2)( const char * );
public:
string( std::string &str ): m_s(str),
m_pAssign1(&std::string::assign), m_pAssign2(&std::string::assign) {}
string &assign( const char *s, std::string::size_type n )
{
(m_s.*m_pAssign1)( s, n ); return *this;
}
string &assign( const char *s )
{
(m_s.*m_pAssign2)( s ); return *this;
}
};
}
сегодня ассимилирую старый хлам на работе (проекты VC6) в студию с нормальными свойствами проектов, конфигурациями, неабсолютными путями и т.д.
наткнулся в одной из либ на вот это
−37
int LoggingProvider::AddJournalPackingLogRecord(int eventId, const astring& userId,
const std::vector<std::string>& journals, int errorId, int devCode,
int sysCode, const astring& errorArgs)
{
std::string strUserId(userId.c_str()), strErrorArgs(errorArgs);
return AddJournalPackingLogRecord(eventId, userId, journals, errorId, devCode, sysCode, strErrorArgs);
}
Рекурсия!
−40
/*
* This GtkIMHtml has the maximum number of smileys allowed, so don't
* add any more. We do this for performance reasons, because smileys
* are apparently pretty inefficient. Hopefully we can remove this
* restriction when we're using a better HTML widget.
*/
unescaped = purple_unescape_html(smiley);
numsmileys_thismsg = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(imhtml), "gtkimhtml_numsmileys_thismsg"));
if (numsmileys_thismsg >= 30) {
gtk_text_buffer_insert(imhtml->text_buffer, iter, unescaped, -1);
g_free(unescaped);
return;
}
numsmileys_total = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(imhtml), "gtkimhtml_numsmileys_total"));
if (numsmileys_total >= 300) {
gtk_text_buffer_insert(imhtml->text_buffer, iter, unescaped, -1);
g_free(unescaped);
return;
}
Вот такой прикол от Pidgin. Больше 30 смайлов в сообщении и 300 в диалоге - низя. Захардкодили, ибо стыдно, что тормозит. А оно действительно тормозит.
−30
TempAnalogTable[ArrayData->GetNomerElement( j )].Data =
Chanel.TempPlace[in] + ( Chanel.TempPlace[in + 1] << 8 );
Скажите, это нормально?
+25
#ncld<strm.h>
vd mn()
{
ct<<"Hll, wrld!";
cn.gt();
}
Нхй пргрммрвн.
−28
template<typename T, int $1, int _2> struct Matrix
{
...
Vector<T, _2> vectors[$1];
};
−23
std::bad_alloc e;
throw std::move(e);
Написал один новичок. Говорит это особая сильно ускоряющая оптимизация.
−23
bool strictlyLess(std::vector<int> v1, std::vector<int>v2) { // v1 < v2
bool strictly = false;
for(int i = 0; i < v1.size(); i++) {
if(v1[i] > v2[i]) {
return false;
}
if(v1[i] < v2[i]) {
strictly = true;
}
}
return strictly;
}