-
+21
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
//Было:
int foo()// ;
{ ;
int a ;
float b ; //В правой части старые
typedef int testing ; //полезные комментарии
std::cout << "Ho-ho-ho" ;
a=0 ;
b=1.0f ;
if (a==b)// ;
{ ;
std::cout <<"Yet another caption";
std::cout <<"Hi-hi-hi" ;
bar() ;
;
} ;
using namespace std ;
for (int i =0;i<10;i++)// ;
{ ;
;
std::cout <<"Hello, world!" ;
std::cout <<"Yet another line" ;
} ;
return 0 ;
;
} ;
//Кто-то что-то решил поменять
//Стало:
int foo()// ;
{ ;
int a ;
float b ; //В правой части старые
typedef int testing ; //полезные комментарии
std::cout << "Ho-ho-ho" ;
a=0 ;
b=1.0f ;
if (a==b)// ;
{ ;
std::cout <<"Yet another caption";
std::cout <<"Hi-hi-hi" ;
bar() ;
;
} ;
double c;
//Слева комментарии требующие
//проверки. Wtf???Зачем здесь с???
using namespace std ;
for (int i =0;i<10;i++)// ;
{ ;
;
std::cout <<"Hello, world!" ;
std::cout <<"Yet another line" ;
} ;
return 6666 ;
;
} ;
//Быстро определили по линии из точек c
//запятой место в котором произошло изменение.
//Если согласились с ним восстанавливаем линию.
Бесплатная распределенная говносистема контроля версий. Git и SVN нервно курят в сторонке.
igumnovf,
20 Ноября 2012
-
+23
- 1
- 2
typedef const AbstractParameter ConstAbstractParameter;
class Parameter: public ConstAbstractParameter{
GCC это не компилирует, но в 2008 ms vs компилируется без предупреждений. Я это как увидел, так сразу переписал на
class Parameter: public AbstractParameter{
А вот теперь я дома и не могу заснуть. Гложет чувство, что я поступил не правильно. Такое чувство как-будто этот const, пусть и не в рамках стандарта С++, но что-то он делал.
LispGovno,
20 Ноября 2012
-
+9
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
class A
{
public:
A () : p (new SomeType)
{
assert ("It must be non-zero" && p);
}
~A ()
{
Box <SomeType> deleter (p);
p = 0;
}
private:
SomeType *p;
};
А вот и применение класса Box
Setry,
19 Ноября 2012
-
+22
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
class ClassA
{
};
class ClassB : private ClassA
{
public:
ClassA& AsClassA()
{
return *this;
}
};
Setry,
19 Ноября 2012
-
+22
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
template<class T>
class Box
{
private:
explicit Box(const Box&);
Box& operator = (const Box&);
public:
explicit Box()
: m_value(0)
{}
explicit Box(T* value)
: m_value(value)
{}
~Box()
{
std::auto_ptr <T> toDelete(m_value);
}
T* Release()
{
T* const result(m_value);
m_value = 0;
return result;
}
void Reset(T* value)
{
std::auto_ptr <T> toDelete(m_value);
m_value = value;
}
private:
T* m_value;
};
Setry,
19 Ноября 2012
-
+24
- 1
- 2
- 3
- 4
- 5
- 6
#define TRUE (1)
#define FALSE (0)
#define internal protected:
#define external public:
#define declareSuper(superClass) protected: typedef superClass super
Оттуда.
LispGovno,
17 Ноября 2012
-
+14
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
[code=cpp]
#include <iostream>
#include <cmath>
void foo(double x, double y)
{
if (std::cos(x) != std::cos(y))
std::cout << "Я знаю точно невозможное возможно";
}
int main()
{
foo(1.0, 1.0);
return 0;
}
[/code]
floatы и нуб.
igumnovf,
16 Ноября 2012
-
+18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
using namespace boost;
typedef filesystem::recursive_directory_iterator dir_iter_t;
dir_iter_t itt(filesystem::current_path());
while ([&](dir_iter_t &itter) -> decltype(itter)
{
std::cout << boost::filesystem::path((*itter++).path()).make_preferred().string() << std::endl;
return itter;
}(itt) != dir_iter_t());
Вчера ночью написал сие чудо , сегодня когда увидел - меня чуть приступ не хватил.
Выводит в консоль всё содержимое текущего каталога и всех вложенных.
suc-daniil,
15 Ноября 2012
-
+21
- 1
- 2
- 3
extern struct BloodRainPersonage
{
} bloodRainPersonage, * pBloodRainPersonage;
Мне даже нечего сказать...
LispGovno,
13 Ноября 2012
-
+24
- 1
QString("a=%1 b=%2").arg("[%1]").arg("Shit happens")
Вы думаете, что результат будет "a=[%1] b=Shit happens"?
Как бы не так! "a=[Shit happens] b=%2".
Причем эта "фича" вполне документирована. Но документирована она не в самом первом описании arg'а, а только в arg(const QString &a1, const QString &a2), в доку по которому я естественно никогда не заглядывал...
UPD: правильным вариантом будет QString("a=%1 b=%2").arg("[%1]", "Shit happens"), но тогда мы лишаемся поддержки форматирования, да и таким образом можно засунуть максимум 10 аргументов.
bormand,
13 Ноября 2012