- 1
system("PAUSE")
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+15
system("PAUSE")
Красивое, оптимальное, и самое главное, кроссплатформенное решение для ожидания нажатия клавиши.
http://habrahabr.ru/post/147104/
Предупреждая вопрос "где здесь с++", отвечу - автор считал, что он пишет на с++, и даже использовал пару конструкций оттуда - перегрузку функций и new/delete.
+15
#pragma once
#include <assert.h>
template<typename T>
inline T notNull(T arg)
{
assert(arg!=NULL);
return arg;
}
/*
//example:
class AnotherClass;
class SomeClass
{
AnotherClass * m_another;
//...
SomeClass(AnotherClass * another, /*skipped*/) : m_another(notNull(another)), /*skipped*/;
}
*/
Мелочь, конечно же, но всё-таки чушь, несмотря на пользу.
+19
// хелпер чтобы конвертить типы строк
template <class S1, class S2>
struct str_convert {
static S1 conv(S2 const & s2) { return str_convert<S2, S1>::conv(s2); } // по умолчанию ищет специализацию для пары S2, S1
static S2 conv(S1 const & s1) { return str_convert<S2, S1>::conv(s1); }
};
// специализация, чтобы не конвертить одно в одно
template <class S>
struct str_convert<S, S> {
static S const & conv(S const & s) { return s; };
};
// специализация, чтобы конвертить std::string <-> std::wstring
template <>
struct str_convert<std::string, std::wstring> {
static std::string conv(std::wstring const & ws) { return boost::locale::conv::utf_to_utf<char>(ws); }
static std::wstring conv(std::string const & s) { return boost::locale::conv::utf_to_utf<wchar_t>(s); }
};
// специализация QString <-> std::string
// skipped
template <class StringType = std::string>
struct some
{
typedef StringType string_type;
typedef std::string utf8_string_type;
some(string_type const & s = string_type())
: inner_string_(s)
{}
template <class S>
some(S const & s)
: inner_string_(str_convert<S, string_type>::conv(s))
{}
string_type inner_string_;
};
int main()
{
std::string s = "hello!";
some<> test0(s); // ok
some<> test2("hello!"); // ха-ха, вот еще, пытаться самостоятельно привести к std::string, пиши специализацию для массивов, сука!
return 0;
}
сегодня ради красоты передачи "literal" в конструктор писал говноспециализации для PodType[N]
+23
if(this==NULL)
return;
+5
template<class T>
bool IsAligned(T SizeOrAddress, const size_t AlignStep)
{
return SizeOrAddress==Align(SizeOrAddress, AlignStep);
}
+15
void* const allocateOrDie(const size_t Size) throw();
Ультиматум. :)
+12
if(maxbits<3) x = genrand64_int64() & genrand64_int64() & genrand64_int64() & genrand64_int64() & genrand64_int64();
else
{
if(maxbits<6) x = genrand64_int64() & genrand64_int64() & genrand64_int64() & genrand64_int64();
else x = genrand64_int64() & genrand64_int64() & genrand64_int64();
}
+1
class SumClass
{
int A, B;
public:
void Set_A(int A) {this->A = A;}
void Set_B(int B) {this->B = B;}
int Sum() {return A+B;}
}
class MultiSumClass
{
SumClass Sum;
int count;
public:
void Set_A(int A) {Sum.Set_A(A);}
void Set_B(int B) {Sum.Set_B(B);}
void Set_Count(int count) {this->count = count;}
int GetSum() {return Sum->Sum()*count;}
}
void main()
{
MultiSumClass MSC;
MSC.Set_A(5); MSC.Set_B(10);
MSC.Set_Count(2);
cout << MSC.GetSum();
}
Вот зачем ООП нужно
http://www.gamedev.ru/flame/forum/?id=164035
извените за игрстрй
−11
rampage=1<<12;
Видимо кто-то из буйных писал.
+1
WORD StrLen(PChar s)
{
ASSERT(s!=NULL);
int i;
for (i=0; ( (*(s+i)!=0) && (i<=WORDMAX) ); i++) {};
ASSERT(i<=WORDMAX);
return (WORD)i;
};
По заявкам из http://govnokod.ru/11318