- 1
- 2
- 3
- 4
#define ROOSTER "?"
#define CONDENSED_MILK "."
string kokoko = string(ROOSTER, 1) + string(CONDENSED_MILK);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+3
#define ROOSTER "?"
#define CONDENSED_MILK "."
string kokoko = string(ROOSTER, 1) + string(CONDENSED_MILK);
ЧТО блять мешает написать
string kudkudah(".?");
ЧТО?
+9
if(buf_modem[cntfrommodem] == 'S')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem ] == 'R')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'I')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'N')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'G')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == ':')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == ' ')
{
cnt_comma = 0;
while(cnt_comma < 2)
{
cntfrommodem = cntfrommodem + 1;
if(buf_modem[cntfrommodem] == ',')
cnt_comma = cnt_comma + 1;
}
cntfrommodem = cntfrommodem + 1 ;
}
}
}else
cntfrommodem -= 4;
}else cntfrommodem -= 3;
}else cntfrommodem -= 2;
}else cntfrommodem--;
}
buf_modem[tmpcntr] = buf_modem[cntfrommodem];
cntfrommodem++;
tmpcntr++;
}
cntfrommodem = 0;
while(1)
{
/// ищем мэдэ5
if(buf_modem[cntfrommodem] == '#')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'S')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem ] == 'E')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'R')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'V')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'A')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'N')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'S')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'W')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == ':')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == ' ')
{
Парсинг ответа от GSM-модема. Код из реального проекта для STM32.
+3
void CRenderer::renderToTexture(CTexture &dest, CTexture &src, TRANSFORM tr)
{
int w = src.width();
Concurrency::parallel_for(0, w, [&] (int i)
{
int h = src.height();
for(int j = 0; j < h; j++)
{
COLOR temp = src.pixel(i, j);
if(temp == TRANSPARENT_COLOR) continue;
//scale
float dx = (i-(w/2) + 0.5f)*tr.scale[0];
float dy = (j-(h/2) + 0.5f)*tr.scale[1];
//rotate
float dx2 = dx*tr.cosRot - dy*tr.sinRot;
float dy2 = dx*tr.sinRot + dy*tr.cosRot;
//translate
dx2 += tr.trans[0];
dy2 += tr.trans[1];
//update pixels
float xMin = dx2 - 0.5f*tr.scale[0] + w/2; if(xMin < 0) xMin = 0;
float yMin = dy2 - 0.5f*tr.scale[1] + w/2; if(yMin < 0) yMin = 0;
float xMax = xMin + tr.scale[0]; if(xMax-(int)xMax > 0) xMax++; if(xMax >= dest.width()) xMax = dest.width()-1;
float yMax = yMin + tr.scale[1]; if(yMax-(int)yMax > 0) yMax++; if(yMax >= dest.height()) yMax = dest.height()-1;
for(float ki = xMin; ki <= xMax; ki++) for(float kj = yMin; kj <= yMax; kj++) dest.pixel(ki, kj) = temp;
}
});
}
Писал ручками трансформацию картинок в 2д, вышло без искажений пропорций, но с дырками, уродливо, и просадило фпс в самую жопень!
+2
#include "Node.h"
CMonom* CNode::GetMonomPtr() const
{
return _MonomPtr;
}
CNode* CNode::GetNext() const
{
return _NextPtr;
}
bool CNode::GetSign() const
{
return _MonomPtr->GetSign();
}
int CNode::GetCoeff() const
{
return _MonomPtr->GetCoeff();
}
unsigned CNode::GetDegree() const
{
return _MonomPtr->GetDegree();
}
void CNode::SetNext(CNode* Node)
{
_NextPtr = Node;
}
void CNode::SetCoeff(int iCoeff)
{
_MonomPtr->SetCoeff(iCoeff);
}
void CNode::SetDegree(unsigned uDegree)
{
_MonomPtr->SetDegree(uDegree);
}
CNode::CNode(char* szStr) : _NextPtr(nullptr)
{
try
{
_MonomPtr = new CMonom(szStr);
}
catch (const bad_alloc& exc)
{
std::cout << exc.what();
}
}
CNode::CNode(int iCoeff, unsigned uDegree) : _NextPtr(nullptr)
{
try
{
_MonomPtr = new CMonom(iCoeff, uDegree);
}
catch (const bad_alloc& exc)
{
std::cout << exc.what();
}
}
CNode::CNode(const CMonom& Monom) : _NextPtr(nullptr)
{
try
{
_MonomPtr = new CMonom(Monom);
}
catch (const bad_alloc& exc)
{
std::cout << exc.what();
}
}
CNode::CNode(const CNode& Node) : _NextPtr(nullptr)
{
try
{
_MonomPtr = new CMonom(*Node.GetMonomPtr());
}
catch (const bad_alloc& exc)
{
std::cout << exc.what();
}
}
CNode& CNode::operator=(const CNode& Node)
{
SetCoeff(Node.GetCoeff());
SetDegree(Node.GetDegree());
return *this;
}
CNode CNode::operator-() const
{
return CNode(-*_MonomPtr);
+2
connector* getConnector( int id )
{
autolock_read<lock_rw_t> alr( _lock );
return _getConnector(id);
}
П-потокобезопасность
−2
namespace spine {
static SkeletonBatch* instance = nullptr;
void SkeletonBatch::setBufferSize (int vertexCount) {
if (instance) delete instance;
instance = new SkeletonBatch(vertexCount);
}
SkeletonBatch* SkeletonBatch::getInstance () {
if (!instance) instance = new SkeletonBatch(8192);
return instance;
}
SkeletonBatch::SkeletonBatch (int capacity) :
_capacity(capacity), _position(0)
{
_buffer = new V3F_C4B_T2F[capacity];
_firstCommand = new Command();
_command = _firstCommand;
Director::getInstance()->getScheduler()->scheduleUpdate(this, -1, false);
}
SkeletonBatch::~SkeletonBatch () {
Director::getInstance()->getScheduler()->unscheduleUpdate(this);
Command* command = _firstCommand;
while (command) {
Command* next = command->next;
delete command;
command = next;
}
delete [] _buffer;
}
https://github.com/EsotericSoftware/spine-runtimes/blob/master/spine-cocos2dx/3/src/spine/SkeletonBatch.cpp
Это просто шедевЕр! Течет как ссаные тряпки...
+4
#define key \
keySequence.keys[i]
#define read_helper(val_) \
file.read( \
reinterpret_cast<char*>(&key.val_), \
sizeof(decltype(key.val_)) \
)
for (DWORD i = 0; i < keyPointer.Count; i++)
read_helper(RotationQuaternion);
for (DWORD i = 0; i < keyPointer.Count; i++)
read_helper(TimeValue);
for (DWORD i = 0; i < keyPointer.Count; i++)
read_helper(PositionValue),
key.SwapBytes();
#undef read_helper
#undef key
+9
#define public public: void operator delete(void *pituh) {}; public
class poteklo
{
public:
poteklo() :
TheAnswer(42)
{
;
}
private:
int TheAnswer;
};
int main(int argc, char *argv[])
{
poteklo *uteklo = new poteklo;
delete uteklo; // Утекло!
return 0;
}
Макро в духе "#define TRUE FALSE", только хардкорнее.
https://ideone.com/ZdGnuL
0
//...
/* See if this is something like X * C - X or vice versa or
if the multiplication is written as a shift. If so, we can
distribute and make a new multiply, shift, or maybe just
have X (if C is 2 in the example above). But don't make
something more expensive than we had before. */
if (SCALAR_INT_MODE_P (mode))
{
rtx lhs = op0, rhs = op1;
wide_int coeff0 = wi::one (GET_MODE_PRECISION (mode));
wide_int coeff1 = wi::one (GET_MODE_PRECISION (mode));
if (GET_CODE (lhs) == NEG)
{
coeff0 = wi::minus_one (GET_MODE_PRECISION (mode));
lhs = XEXP (lhs, 0);
}
else if (GET_CODE (lhs) == MULT
&& CONST_SCALAR_INT_P (XEXP (lhs, 1)))
{
coeff0 = std::make_pair (XEXP (lhs, 1), mode);
lhs = XEXP (lhs, 0);
}
else if (GET_CODE (lhs) == ASHIFT
&& CONST_INT_P (XEXP (lhs, 1))
&& INTVAL (XEXP (lhs, 1)) >= 0
&& INTVAL (XEXP (lhs, 1)) < GET_MODE_PRECISION (mode))
{
coeff0 = wi::set_bit_in_zero (INTVAL (XEXP (lhs, 1)),
GET_MODE_PRECISION (mode));
lhs = XEXP (lhs, 0);
}
if (GET_CODE (rhs) == NEG)
{
coeff1 = wi::minus_one (GET_MODE_PRECISION (mode));
rhs = XEXP (rhs, 0);
}
else if (GET_CODE (rhs) == MULT
&& CONST_INT_P (XEXP (rhs, 1)))
{
coeff1 = std::make_pair (XEXP (rhs, 1), mode);
rhs = XEXP (rhs, 0);
}
else if (GET_CODE (rhs) == ASHIFT
&& CONST_INT_P (XEXP (rhs, 1))
&& INTVAL (XEXP (rhs, 1)) >= 0
&& INTVAL (XEXP (rhs, 1)) < GET_MODE_PRECISION (mode))
{
coeff1 = wi::set_bit_in_zero (INTVAL (XEXP (rhs, 1)),
GET_MODE_PRECISION (mode));
rhs = XEXP (rhs, 0);
}
if (rtx_equal_p (lhs, rhs))
{
rtx orig = gen_rtx_PLUS (mode, op0, op1);
rtx coeff;
bool speed = optimize_function_for_speed_p (cfun);
coeff = immed_wide_int_const (coeff0 + coeff1, mode);
tem = simplify_gen_binary (MULT, mode, lhs, coeff);
return (set_src_cost (tem, mode, speed)
<= set_src_cost (orig, mode, speed) ? tem : 0);
}
}
https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/simplify-rtx.c?view=markup&pathrev=232689#l2062 здоровенная такая функция из недр GCC, в которой делаются оптимизации, это сродни символьным вычислениям вообще говоря
https://godbolt.org/g/vcEqe7 но похоже эта хрень работает плохо, не смогло оно выявить тождественность умножения сдвигами и обычного умножения, сведя операции к return 1 в случае функции test1. Но я естественно находил и примеры кода, которые GCC смог успешно "редуцировать" своим оптимизатором, а clang тупил. Говно тут в том, что вместо того, чтобы впилить нормальную систему символьных вычислений, там нагородили какого-то ебучего говна... Хотя может быть я чего-то не понимаю в компиляторах. Надо будет дракона почитать
+2
CharT getline(std::istream& i, string& s, const CharT* delim) {
...
if (!i.operator void*())
break;
...
}
Библиотека Apache UIMA-CPP.
Что могло заставить написать так, вместо обычного if (i)? Какой-то древний компилятор, который не использует каст к указателю в условии?
Ну и, разумеется, в C++11 ios::operator void*() заменили на explicit ios::operator bool(), так что работать перестало.