+50.7
- 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
namespace inter {
template<typename X>
struct tplClass {
private:
X _priv;
public:
tplClass(const X _generator) {
this->_priv = _generator;
return;
}
tplClass(const tplClass<int>& _a) {
this->_priv = _a.get();
return;
}
const X get(void) const {
return this->_priv;
}
};
template<typename X>
const tplClass<X> operator+(const tplClass<X>& _lha, const tplClass<X>& _rha) {
return tplClass<X>(_lha.get()+_rha.get());
}
}
int main(int argc, char* args[], char* envs[]) {
tplClass<int> a(5);
tplClass<double> b(3.1);
tplClass<double> c = a + b;
return 0;
}
1. Всё упрощено до невозможности. Описано только то, что необходимо для узрения говнокода.
2. Несмотря на то, что решение существует в очень известной книжке, я напоролся на говнокод лично, пока программу писал. Искал несколько дней проблему... Ну да... Бывает...
3. Говнокод заключается в том, что данный код не компилируется.
P.S. Если видите, что где-то есть дыра, то говорите, возможно я опечатался (злобная администрация исправить не даст), возможно в данном коде плюг опущен, возможно дыра у меня в голове. Конструктивная критика приветствуется.
P.P.S. Если вы решили просто написать, что (C++ == "говно") is true , то, пожалуйста, прошу вас как людей порядочных и воспитанных, имеющих совесть и ум, пройдите мимо. Если у вас нит ни ума, ни совести, ни порядочности, то можете писать про "естественную говнистость" C++, милости прошу.
interested,
30 Октября 2009
+66.8
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
// Найдено глубоко в продакшн-коде некоего транслятора:
HRESULT hr = S_OK;
try {
hr = ParseSection(sourceTemplate, output, CS_IF);
}
CATCH_CG_EXCEPTION(this, hr)
CATCH_CG_EXCEPTION_END
// далее смотрим определения этих чудо-макросов
#define CATCH_CG_EXCEPTION(gen, hr) \
catch (CHierCGException* e) { \
(gen)->WriteExceptionMessage(e); \
if (e->m_bContinue) { \
if (e->m_useHRESULT) hr = e->m_hResult; else hr = E_FAIL; \
} \
delete e; \
if (!(e->m_bContinue))
#define CATCH_CG_EXCEPTION_END \
throw; \
}
Исключительно говнистая обработка исключений :-)
Orfest,
27 Октября 2009
+68
- 1
- 2
char *GetNumRenderedObjectsString() { char *mString = new char [128]; itoa (mNumRenderedObjects, mString, 10); return mString; };
char *GetNumDiscardedObjectsString() { char *mString = new char [128]; itoa (mNumDiscardedObjects, mString, 10); return mString; };
Отличная работа с памятью.
benin,
25 Октября 2009
+66.7
- 1
- 2
mNewFrame->SetName (new char [MAX_TOKEN]);
strcpy (mNewFrame->GetName(), mXFrame->Attribute("name"));
Умелая работа со строками....
benin,
25 Октября 2009
+56.3
- 1
- 2
- 3
- 4
- 5
- 6
- 7
bool a,b;
...
if(a>b)
{
...
Увидел в одной либе... Си++ странный язык. Паскаль проще...
1)Скомпилируеться ли?
2)Что это значит?
Говногость,
24 Октября 2009
+61.8
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
const int size=8;
class Bin
{
public:
Bin();
private:
char first[size];
char second[size];
};
Bin::Bin()
{
for (int s=0;s<=size;s++, first[s]='0');
}
Вот вам смешно? А я пару часов думал почему при заполнении одного вектора меняется другой...
meriados,
23 Октября 2009
+56.1
- 1
- 2
- 3
- 4
- 5
- 6
UINT aScrollMode = 0;
m_pScrollH->GetInfo(&aScrollMode, 0, 0);
if (!(aScrollMode & M_INVISIBLE))
{
...
}
Рефакторю довольно большой проект (5 Мб исходников). Единственный способ спросить у контрола (любого из имеющихся) привожу выше.
Konstantin.Grebenschikov,
22 Октября 2009
+63.6
- 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
- 62
- 63
class WordCount{
private:
string _t;
vector <int> _w;
int wc(){
string tw;
int s = 0;
for(int i = 0; i < _t.size(); ++i){
if(_t[i] == ' '){
tw.clear();
for(int j = s;j < i;++j){
tw += _t[j];
}
size_t z = 0;
for(int k = 0; k < i - s; ++k){
int jj = 1;
for(int d = 0; d < k; ++d)
jj *= 10;
z += jj * static_cast<int>(_t[k]);
}
bool sa = true;
for(int az = 0; az < _w.size(); ++az)
if(_w[az] == z) sa = false;
if(sa)_w.push_back (z);
s = i+1;
}
}
if(s < _t.size() ){
size_t z = 0;
for(int k = s;k < _t.size();++k){
int jj = 1;
for(int d = 0; d < k; ++d)
jj *= 10;
z += jj * static_cast<int>(_t[k]);
}
bool sa = true;
for(int az = 0; az < _w.size(); ++az)
if(_w[az] == z) sa = false;
if(sa)_w.push_back (z);
}
return _w.size();
}
public:
int WordCount(string text){
_t = text;
return wc();
}
};
Клас, который должен был подсчитывать кол-во уникальных слов в строке.
Наслаждайтесь, господа!
hacker-l0maker,
21 Октября 2009
+63.4
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
void RoomFactory::roomCreated(Siis::Room* room,bool created)
{
if(!created)
{
rooms_.remove(room->peer()->jid().bare());
delete room;
}
}
Не индус...
nesquikm,
19 Октября 2009
+60.1
- 1
- 2
- 3
- 4
- 5
CString str;
if(censored_num < 10)
str.Format(_T("CENSORED 0%d"), censored_num);
else
str.Format(_T("CENSORED %d"), censored_num);
Найдено в рабочем коде.
Xentrax,
12 Октября 2009