- 1
std::cout << std::cout << "Hello, world";
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+61
std::cout << std::cout << "Hello, world";
С гейдевчика, странно, что здесь не было.
+77
#define SK_SIMPLE_SIZE SK_BIG : case SK_SMALL : case SK_MIDDLE
switch (some_shit)
{
case SK_TINY :
{
do_smth();
}
break;
case SK_SIMPLE_SIZE :
{
do_smth2();
}
break;
}
странно что вроде бы тут не было
+14
typedef CStatisticsCalculator* (*TCalcCreator)(string&, const TUltimateStatDataPtr&);
typedef std::map <CStatisticsCalculator::eCalcKind, boost::tuple<string, TUltimateStatDataPtr, TCalcCreator>> TCalcImplMap;
static TCalcImplMap CalcsMap;
CStatisticsCalculator* CStatisticsCalculator::MakeNewCalculator(CStatisticsCalculator::eCalcKind Kind,
const TUltimateStatDataPtr& Data )
{
if (CalcsMap.empty())
{
CalcsMap[eCalcKind::eExtremeDealPrice] =
boost::make_tuple(string("be.commons.calculators.extreme_prices"), Data,
[](string& Name, const TUltimateStatDataPtr& Data_)->CStatisticsCalculator*
{ return new CExtremePricesCalculator(Name.c_str(), Data_);});
CalcsMap[eCalcKind::eTurnOver] =
boost::make_tuple(string("be.commons.calculators.turnover"), Data,
[](string& Name, const TUltimateStatDataPtr& Data_)->CStatisticsCalculator*
{ return new CTurnOverCalculator(Name.c_str(), Data_);});
};
auto i = CalcsMap.find(Kind);
if (i == CalcsMap.end())
return 0;
auto& tpl = i->second;
return tpl.get<2>()(tpl.get<0>(), tpl.get<1>());
};
Фабричный метод теперь выглядит так
+9
template<...many params...>
class Foo
{
template <typename T>
class __Bar
{
T t;
public :
__Bar(T t) : t(t) {}
};
public :
template <typename T>
__Bar<T> Bar(T t)
{
return __Bar<T>(t); // просто __Bar(t) нельзя, вывод не сработает
}
template <typename T>
void Buzz (T t)
{
}
};
...
Foo f;
f.Buzz(Bar(5));
А как вы выкручиваетесь из неумения определять тип результата по типу параметров конструктора?
+9
BOOST_FOREACH(auto &v, pt.get_child("root"))
Код компилируется и написан таким изначально. Но судя по всему использует копипаст из примеров.
+12
int main()
{
MyList<MySubList*> *list;
...
int error=makeZeroItemsNull(list)+deleteZeroItems(list);
delete list;
return error;
}
int makeZeroItemsNull(MyList *list)
{
//Удаляем указатели в списке и обнуляем
if(list==0||error)return 1;
return deleteZeroItems(list); //На всякий случай проверяем остались ли не удаленные элементы
}
int deleteZeroItems(MyList *list)
{
//Удаляем из списка обнуленные элементы
if(list==0||error)return 2;
return makeZeroItemsNull(list); //На всякий случай проверяем остались ли не обнуленные элементы
}
Учим все функции возвращать int(0) когда нет ошибок.
+9
class t_item{
public:
#define DEF_PRO_STRUCT_INFO(NAME,PARENT,OWNER)NAME(t_item)
#define DEF_PRO_VARIABLE(ADDBEG,ADDVAR,ADDEND)\
ADDBEG()\
ADDVAR(0,string,name,DEF,$,$)\
ADDVAR(1,int,next,SET,0,$)\
ADDEND()
//=====+>>>>>t_item
#include "QapGenStruct.inl"
//<<<<<+=====t_item
public:
};
+14
string modify( const string & str )
{
if( str.size() == 0 ) return "00";
if( str.size() == 1 ) return "0" + str;
return string( str.end() - 2, str.end() );
}
string modify4( const string & str )
{
if( str.size() == 0 ) return "0000";
if( str.size() == 1 ) return "000" + str;
if( str.size() == 2 ) return "00" + str;
if( str.size() == 3 ) return "0" + str;
return string( str.end() - 4, str.end() );
}
string TimeISOFormat( time_t cur )
{
char buf[32];
struct tm * timeinfo;
timeinfo = localtime ( &cur );
strftime(buf, 32, "%y", timeinfo);
string year(buf);
strftime(buf, 32, "%m", timeinfo);
string month(buf);
strftime(buf, 32, "%d", timeinfo);
string day(buf);
strftime(buf, 32, "%H", timeinfo);
string hour(buf);
strftime(buf, 32, "%M", timeinfo);
string minute(buf);
strftime(buf, 32, "%S", timeinfo);
string second(buf);
return modify4( year ) + "-" + modify( month ) + "-" + modify( day ) + "T" + modify( hour )+ ":" + modify( minute )+ ":" + modify( second );
}
string CurrentTimeISOFormat()
{
time_t cur = CurrentTime();
char buf[32];
struct tm * timeinfo;
timeinfo = localtime ( &cur );
strftime(buf, 32, "%y", timeinfo);
string year(buf);
strftime(buf, 32, "%m", timeinfo);
string month(buf);
strftime(buf, 32, "%d", timeinfo);
string day(buf);
strftime(buf, 32, "%H", timeinfo);
string hour(buf);
strftime(buf, 32, "%M", timeinfo);
string minute(buf);
strftime(buf, 32, "%S", timeinfo);
string second(buf);
return modify4( year ) + "-" + modify( month ) + "-" + modify( day ) + "T" + modify( hour )+ ":" + modify( minute )+ ":" + modify( second );
}
time_t CurrentTime()
{
time_t rawtime = 0;
time(&rawtime);
return rawtime;
}
+9
#define FindElem( L ) _FindElem( [=] (VEC4 iter) -> bool { return (L); } )
На что только не пойдут люди, чтобы писать
VEC4* pv = vecs.FindElem( iter.x==1.0f );
+57
#include <string>
std::string SearchPushString(char StartVkPage[])
{
char push[] = {'p','o', 's', 't'};
char http[] = {'h','t', 't', 'p'};
unsigned int* ipush = (unsigned int*)push;
unsigned long j = 0;
do
{
char* p = &StartVkPage[j];
unsigned int* nextFourSymbol = (unsigned int*)p;
if(nextFourSymbol[0]==ipush[0])
{
if(*p=='p')
ipush = (unsigned int*)http;
else
{
char* postString = new char[650];
memset(postString,0,650);
short int u = 0;
do
{
postString[u] = p[u];
}
while(p[++u]!='"'&&u!=650);
std::string url(postString);
delete [] postString;
return url;
}
}
}
while(StartVkPage[j++]);
return std::string("error");
}
Я все никак не выучу регулярных выражений, ИЧСХ - обхожусь.