- 1
- 2
- 3
- 4
- 5
- 6
- 7
/* set _god=true temporarily, safely */
class GodScope {
bool _prev;
public:
GodScope();
~GodScope();
};
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+53
/* set _god=true temporarily, safely */
class GodScope {
bool _prev;
public:
GodScope();
~GodScope();
};
mongo/db/client.h
Почувствуй простор божий
+43
for each (ToolStripMenuItem ^item in пользователиToolStripMenuItem->DropDownItems) {
item->Enabled = true;
}
Это C++, и это работает!
+53
template <typename T, typename Mid, int N>
struct UselessWrapperFillMid
{
inline static void FillMid (T* t, Mid mid)
{
mid(t[0], t[N], t[N/2]);
UselessWrapperFillMid<T,Mid,N/2>::FillMid (&t[0] , mid);
UselessWrapperFillMid<T,Mid,N/2>::FillMid (&t[N/2], mid);
}
};
template <typename T, typename Mid>
struct UselessWrapperFillMid <T, Mid, 1>
{
inline static void FillMid (T* t, Mid mid)
{
(void)t;
(void)mid;
}
};
Бесит такой понос вместо нормальной рекурсии.
Но иначе оно не развернётся в последовательность инструкций без ветвлений и вызовов.
+55
// Извиняюсь, но кода не будет, только ссылка.
// https://github.com/fruxo/turbobadger
>> With compilers supporting C+ + 11
Вот лично против либы ничего не имею - годная получилась. Но..
Аффтар заучил nullptr, и считает что теперь он использует c++11.
Епт, да эта либа спокойно собирается под vc2008, стоит только задефайнить nullptr как 0.
+53
class CClass
{
//...
boost::shared_ptr<CTestData> mpTestData;
//...
};
void CClass::setTestData(boost::shared_ptr<CTestData> pTestData)
{
if(pTestData.use_count() == 0)
{
mpTestData.reset();
}
else
{
mpTestData = pTestData;
}
}
+57
bool operator ==( const CClass& lhs, const CClass& rhs )
{
bool rc = true;
// No self-comparison...
if ( &lhs != &rhs )
{
// Do not compare fields if result is already false...
if ( rc )
{
rc = ( lhs.frameId() == rhs.frameId());
}
if ( rc )
{
rc = ( lhs.objectId() == rhs.objectId());
}
if ( rc )
{
rc = ( lhs.type() == rhs.type() );
}
if ( rc )
{
rc = ( lhs.transition() == rhs.transition() );
}
if ( rc )
{
rc = ( lhs.rotation() == rhs.rotation() );
}
}
return rc;
}
+55
bool nt_utils::enum_processes(std::vector<uint32_t>& pids)
{
pids.clear();
PDWORD process_ids = NULL;
DWORD cb = ALLOC_SIZE;
DWORD bytes_returned = 0;
BOOL complete = FALSE;
__try {
while (!complete) {
process_ids = static_cast<PDWORD>(
::HeapAlloc(
::GetProcessHeap(),
HEAP_GENERATE_EXCEPTIONS | HEAP_ZERO_MEMORY,
cb
)
);
if (::EnumProcesses(process_ids, cb, &bytes_returned)) {
if (cb == bytes_returned) {
::HeapFree(::GetProcessHeap(), 0, process_ids);
process_ids = NULL;
cb *= 2;
} else {
complete = TRUE;
}
} else {
::HeapFree(::GetProcessHeap(), 0, process_ids);
process_ids = NULL;
complete = TRUE;
}
}
if (process_ids) {
DWORD size = bytes_returned / sizeof(DWORD);
pids.reserve(size);
for (DWORD i = 0; i < size; ++i) {
assert(process_ids[i]);
pids[i] = process_ids[i];
}
::HeapFree(::GetProcessHeap(), 0, process_ids);
}
} __except (EXCEPTION_EXECUTE_HANDLER) {
if (process_ids) {
::HeapFree(::GetProcessHeap(), 0, process_ids);
}
return false;
}
return !!process_ids;
}
Получение id всех процессов
+58
if(!vect.empty())
{
cv::sort(vect, vect, CV_SORT_ASCENDING );
}
while(vect.size()>100)
{
cv::sort(vect, vect, CV_SORT_DESCENDING );
vect.pop_back();
cv::sort(vect, vect, CV_SORT_ASCENDING );
vect.pop_back();
}
+58
#include "internationalization.h"
namespace internationalization
{
QString numToString(int num, CASE padezh)
{
switch ( padezh )
{
case NOMINATIVE:
switch ( num )
{
case 0: return "ноль";
case 1: return "один";
case 2: return "два";
case 3: return "три";
case 4: return "четыре";
case 5: return "пять";
case 6: return "шесть";
case 7: return "семь";
case 8: return "восемь";
case 9: return "девять";
case 10: return "десять";
case 11: return "одиннадцать";
case 12: return "двенадцать";
case 13: return "тринадцать";
case 14: return "четырнадцать";
case 15: return "пятнадцать";
case 16: return "шестнадцать";
case 17: return "семьнадцать";
case 18: return "восемьнадцать";
case 19: return "девятнадцать";
case 20: return "двадцать";
case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 30: return "традцать";
case 31: case 32: case 33: case 34: case 35: case 36: case 37: case 38: case 39: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 40: return "сорок";
case 41: case 42: case 43: case 44: case 45: case 46: case 47: case 48: case 49: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 50: return "пятьдесят";
case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 58: case 59: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 60: return "шестьдесят";
case 61: case 62: case 63: case 64: case 65: case 66: case 67: case 68: case 69: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 70: return "семьдесят";
case 71: case 72: case 73: case 74: case 75: case 76: case 77: case 78: case 79: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 80: return "восемьдесят";
case 81: case 82: case 83: case 84: case 85: case 86: case 87: case 88: case 89: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 90: return "девяносто";
case 91: case 92: case 93: case 94: case 95: case 96: case 97: case 98: case 99: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 100: return "сто";
case 101: case 102: case 103: case 104: case 105: case 106: case 107: case 108: case 109: return numToString( (num / 100 % 10 ) * 100 ) + " " + numToString( num % 10 );
case 110: case 111: case 112: case 113: case 114: case 115: case 116: case 117: case 118: case 119: case 120: case 121: case 122: case 123: case 124: case 125: case 126: case 127: case 128: case 129: case 130: case 131: case 132: case 133: case 134: case 135: case 136: case 137: case 138: case 139: case 140: case 141: case 142: case 143: case 144: case 145: case 146: case 147: case 148: case 149: case 150: case 151: case 152: case 153: case 154: case 155: case 156: case 157: case 158: case 159: case 160: case 161: case 162: case 163: case 164: case 165: case 166: case 167: case 168: case 169: case 170: case 171: case 172: case 173: case 174: case 175: case 176: case 177: case 178: case 179: case 180: case 181: case 182: case 183: case 184: case 185: case 186: case 187: case 188: case 189: case 190: case 191: case 192: case 193: case 194: case 195: case 196: case 197: case 198: case 199: return numToString( (num / 100 % 10 ) * 100 ) + " " + numToString( (num / 10 % 10 ) * 10 ) + " " + numToString( num % 10 );
Такой код мне встретился в моем старом проекте... Мне кажется, или из меня вышел бы неплохой программист в Китае или Индии?
И там не конец, весь файл сего перла здесь: http://pastebin.com/tpAd95fd
+57
for (j=0;j<3;j++) {
tmp += member[i].V[2][j] * member[i].V[0][j];}
if (tmp > LENGTH_EPS) {
if ( node[member[i].n0].u_fix.y == 0 ) { //if node #1 is not fixed
if ( node[member[i].n0].teta_fix.x == 0 ) { //if node #3 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n0]+1, FreeDeg*n_number[member[i].n0] +3, 6*EJz/member[i].L*tmp );} //k(1,3)
if ( node[member[i].n1].teta_fix.x == 0 ) { //if node #9 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n0]+1, FreeDeg*n_number[member[i].n1] +3, 6*EJz/member[i].L*tmp );} //k(1,9)
}
if ( node[member[i].n0].u_fix.z == 0 ) { //if node #2 is not fixed
if ( node[member[i].n0].u_fix.x == 0 ) { //if node #0 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n0]+2, FreeDeg*n_number[member[i].n0], 12*EJy/pow(member[i].L,2)*tmp );} //k(2,0)
if ( node[member[i].n1].u_fix.x == 0 ) { //if node #6 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n0]+2, FreeDeg*n_number[member[i].n1], -12*EJy/pow(member[i].L,2)*tmp );} //k(2,6)
}
if ( node[member[i].n0].teta_fix.y == 0 ) { //if node #4 is not fixed
if ( node[member[i].n0].u_fix.x == 0 ) { //if node #0 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n0]+4, FreeDeg*n_number[member[i].n0], -6*EJy/member[i].L*tmp );} //k(4,0)
if ( node[member[i].n1].u_fix.x == 0 ) { //if node #6 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n0]+4, FreeDeg*n_number[member[i].n1], 6*EJy/member[i].L*tmp );} //k(4,6)
}
if ( node[member[i].n0].teta_fix.z == 0 ) { //if node #5 is not fixed
if ( node[member[i].n0].teta_fix.x == 0 ) { //if node #3 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n0]+5, FreeDeg*n_number[member[i].n0] +3, 4*EJz*tmp );} //k(5,3)
if ( node[member[i].n1].teta_fix.x == 0 ) { //if node #9 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n0]+5, FreeDeg*n_number[member[i].n1] +3, 2*EJz/member[i].L*tmp );} //k(5,9)
}
if ( node[member[i].n1].u_fix.y == 0) { //if node #7 is not fixed
if ( node[member[i].n0].teta_fix.x == 0 ) { //if node #3 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n1]+1, FreeDeg*n_number[member[i].n0] +3, -6*EJz/member[i].L*tmp );} //k(7,3)
if ( node[member[i].n1].teta_fix.x == 0 ) { //if node #9 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n1]+1, FreeDeg*n_number[member[i].n1] +3, -6*EJz/member[i].L*tmp );} //k(7,9)
}
if ( node[member[i].n1].u_fix.z == 0 ) { //if node #8 is not fixed
if ( node[member[i].n0].u_fix.x == 0 ) { //if node #0 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n1]+2, FreeDeg*n_number[member[i].n0], -12*EJy/pow(member[i].L,2)*tmp );} //k(8,0)
if ( node[member[i].n1].u_fix.x == 0 ) { //if node #6 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n1]+2, FreeDeg*n_number[member[i].n1], 12*EJy/pow(member[i].L,2)*tmp );} //k(8,6)
}
if ( node[member[i].n1].teta_fix.y == 0 ) { //if node #10 is not fixed
if ( node[member[i].n0].u_fix.x == 0 ) { //if node #0 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n1]+4, FreeDeg*n_number[member[i].n0], -6*EJy/member[i].L*tmp );} //k(10,0)
if ( node[member[i].n1].u_fix.x == 0 ) { //if node #6 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n1]+4, FreeDeg*n_number[member[i].n1], 6*EJy/member[i].L*tmp );} //k(10,6)
}
if ( node[member[i].n1].teta_fix.z == 0 ) { //if node #11 is not fixed
if ( node[member[i].n0].teta_fix.x == 0 ) { //if node #3 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n1]+5, FreeDeg*n_number[member[i].n0] +3, 2*EJz*tmp );} //k(11,3)
if ( node[member[i].n1].teta_fix.x == 0 ) { //if node #9 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n1]+5, FreeDeg*n_number[member[i].n1] +3, 4*EJz*tmp );} //k(11,9)
}
}
//SUM(Lzi * Lyi), i=x0,y0,z0
tmp = 0;
for (j=0;j<3;j++) {
tmp += member[i].V[2][j] * member[i].V[1][j];}
if (tmp > LENGTH_EPS) {
if ( node[member[i].n0].u_fix.y == 0 ) { //if node #1 is not fixed
if ( node[member[i].n0].teta_fix.y == 0 ) { //if node #4 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n0]+1, FreeDeg*n_number[member[i].n0] +4, 6*EJz/member[i].L*tmp ); //k(1,4)
k_var.AddNewElement( FreeDeg*n_number[member[i].n0]+4, FreeDeg*n_number[member[i].n0] +1, -6*EJy/member[i].L*tmp ); //k(4,1)
}
if ( node[member[i].n1].teta_fix.y == 0 ) { //if node #10 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n0]+1, FreeDeg*n_number[member[i].n1] +4, 6*EJz/member[i].L*tmp ); //k(1,10)
k_var.AddNewElement( FreeDeg*n_number[member[i].n1]+4, FreeDeg*n_number[member[i].n0] +1, -6*EJy/member[i].L*tmp ); //k(10,1)
}
}
if ( node[member[i].n1].u_fix.y == 0) { //if node #7 is not fixed
if ( node[member[i].n0].teta_fix.y == 0 ) { //if node #4 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n0]+4, FreeDeg*n_number[member[i].n1] +1, 6*EJy/member[i].L*tmp ); //k(4,7)
k_var.AddNewElement( FreeDeg*n_number[member[i].n1]+1, FreeDeg*n_number[member[i].n0] +4, -6*EJz/member[i].L*tmp ); //k(7,4)
}
if ( node[member[i].n1].teta_fix.y == 0 ) { //if node #10 is not fixed
k_var.AddNewElement( FreeDeg*n_number[member[i].n1]+1, FreeDeg*n_number[member[i].n1] +4, -6*EJz/member[i].L*tmp ); //k(7,10)
k_var.AddNewElement( FreeDeg*n_number[member[i].n1]+4, FreeDeg*n_number[member[i].n1] +1, 6*EJy/member[i].L*tmp ); //k(10,7)
}
}
..............................еще 10 страниц
математики... бессмысленные и беспощадные.