-
+23
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
#ifndef SAFE_RELEASE
#define SAFE_RELEASE(x) \
if(x != NULL) \
{ \
x->Release(); \
x = NULL; \
}
#endif
#define SAFE_DELETE(a) if( (a) != NULL ) delete (a); (a) = NULL;
#ifndef SAFE_ARRAY_DELETE
#define SAFE_ARRAY_DELETE(x) \
if(x != NULL) \
{ \
delete[] x; \
x = NULL; \
}
#endif
#define SAFE_FREE( p ) if( p ) { free( p ) ; p=NULL ; }
Я вот все никак не могу забыть старый код из доков макрософт по COM, а также из книги Андре Ла Мота.
Два макроса до сих пор висят среди доков на сайте мс (по коду догадаетесь какие):
http://msdn.microsoft.com/ru-RU/library/windows/desktop/dd743946(v=vs.85).aspx
LispGovno,
01 Июня 2013
-
+14
- 1
std::set_unexpected( [] () {} );
Студия достала и не позволяла обрабатывать исключения, а они нужны были для демонстрации работы, в итоге навесил такой костыль и включил SEH исключения в параметрах компиляции.
maksim_ovcharik,
29 Мая 2013
-
+24
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
int randomize(int Min, int Max)
{
qsrand(QTime::currentTime().msec());
if (Min > Max)
{
int Temp = Min;
Min = Max;
Max = Temp;
}
return ((qrand()%(Max-Min+1))+Min);
}
Всё хорошо?
Hackeridze,
29 Мая 2013
-
+26
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
if (Keys == 0 && Shift.Contains(ssShift) == false && Shift.Contains(ssCtrl) == false && Shift.Contains(ssAlt) == false) { ... }
if (Keys == 1 && Shift.Contains(ssShift) == true && Shift.Contains(ssCtrl) == false && Shift.Contains(ssAlt) == false) { ... }
if (Keys == 2 && Shift.Contains(ssShift) == false && Shift.Contains(ssCtrl) == true && Shift.Contains(ssAlt) == false) { ... }
if (Keys == 3 && Shift.Contains(ssShift) == false && Shift.Contains(ssCtrl) == false && Shift.Contains(ssAlt) == true) { ... }
if (Keys == 4 && Shift.Contains(ssShift) == true && Shift.Contains(ssCtrl) == true && Shift.Contains(ssAlt) == false) { ... }
if (Keys == 5 && Shift.Contains(ssShift) == true && Shift.Contains(ssCtrl) == false && Shift.Contains(ssAlt) == true) { ... }
if (Keys == 6 && Shift.Contains(ssShift) == false && Shift.Contains(ssCtrl) == true && Shift.Contains(ssAlt) == true) { ... }
if (Keys == 7 && Shift.Contains(ssShift) == true && Shift.Contains(ssCtrl) == true && Shift.Contains(ssAlt) == true) { ... }
Без комментариев. Думаю, тут и так все понятно ;)
bormand,
23 Мая 2013
-
+14
- 1
- 2
- 3
- 4
- 5
uint8_t* head = (uint8_t*) Buffer::Data(buffer);
uint8_t* tail = head + Buffer::Length(buffer) - 1;
// xor swap, just because I can
while (head < tail) *head ^= *tail, *tail ^= *head, *head ^= *tail, ++head, --tail;
https://github.com/bnoordhuis/node-buffertools/blob/master/buffertools.cc#L157
movaxbx,
22 Мая 2013
-
+31
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
for (int i = 1; i++; i <= 20) {
if (ExecSQL(...) >= 0) {
Ok_rekord=true;
break;
}
if (i == 20) {
if (ExecSQL(...) < 0) {
// показываем сообщение об ошибке
} else {
Ok_rekord=true;
}
}
}
Вот такой вот цикл для повтора при дедлоке...
bormand,
20 Мая 2013
-
+6
- 1
http://www.work.ua/jobs/1286767/
Я, конечно, знал, что С++ плох, но чтобы настолько...
serpinski,
19 Мая 2013
-
+17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
int getFilesize(char* fname) {
int f=open(fname, O_RDONLY);
int size=0;
if (f<0) {/*не важно*/}
size=lseek(f, 0, SEEK_END);
close(f);
return size;
}
Писал прогу под линукс впервые. К концу написания уже знал что такое stat(), но как глянул в начало...)))))
eax,
18 Мая 2013
-
+12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
// precondition: you already have a boost::shared_ptr<> to this or a derived object
template<typename T>
inline boost::shared_ptr<T> get_shared_ptr()
{
// this cast lets the compiler verify the type compatibility
assert( dynamic_cast<typename boost::shared_ptr<T>::element_type*>( &(*shared_from_this()) ) != 0);
return *(boost::shared_ptr<T>*) &shared_from_this();
}
-
blackhearted,
15 Мая 2013
-
+6
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
#define SET_VTYPE_AND_VARREF(type, val) \
this->vt = VT_ ## type | VT_BYREF; \
V_ ## type ## REF (this) = val;
TVariantT& operator=(System::Currency* src)
{
Clear();
if(src)
SET_VTYPE_AND_VARREF(CY,
reinterpret_cast<tagCY*>(&(src->Val)));
return* this;
}
Быдлер такой быдлер
стырено отсюда http://habrahabr.ru/company/pvs-studio/blog/179615/
govnomonad,
14 Мая 2013