Pull to refresh

Результаты конкурса на самый глючный код C++

Reading time 2 min
Views 72K
После продолжительного обсуждения объявлены победители конкурса Grand C++ Error Explosion Competition. Награды должны были объявить в двух номинациях. Участники первой соревновались по максимальному количеству ошибок на минимальный объём кода. Вторая номинация — творческая, там важно не количество и размер, а качество и красота глюков.

В итоге, абсолютным победителем назван программист Эд Хэнвей (Ed Hanway), приславший такую программу.

#include ".//.//.//.//jeh.cpp"
#include "jeh.cpp"
`
Программа Хэнвея вызывала в шесть раз больше сообщений об ошибках, чем программа ближайшего конкурента в этой номинации.

Победителем по количеству ошибок в категории Plain стал программист Крис Хопман с двойным include.

#include "set>.cpp"
#include "set>.cpp"

В категории «Чистые руки» было запрещено использование препроцессора и здесь победил Марк Алдораси с такой программой.

template<class T,class...>class
C{C<T*const,T,C>a;C<T,C>b;};C<int>c;

В категории «Лучшая обманка» (Best Cheat) победителем назван уже упоминавшийся Крис Хопман. Жюри особенно отметило «использование Perl, единственного языка, менее понятного, чем шаблоны C++».

/usr/include; perl -e "@c=\"x\"x(2**16); while(1) {print @c}" 1>&2

Номинация «Самый неожиданный код».

template<class T>class L{L<T*>operator->()};L<int>i=i->

В номинации «самый правдоподобный код» победила работа Виктора Зверовича. По мнению жюри, подобная программа способна лишить желания жить любого, кто пытается в ней разобраться.

#include <map>
#include <algorithm>
template<class T,class U>void f(T,U u){std::vector<std::vector<T>>v;auto i=end(v);find(i,i,u);find(i,i,&u);U*p,**q,r(),s(U);find(i,i,&p);find(i,i,&q);find(i,i,r);find(i,i,&r);find(i,i,s);find(i,i,&s);}template<class T>void f(T t){f(t,0);f(t,0l);f(t,0u);f(t,0ul);f(t,0ll);f(t,.0);f(t,.0l);f(t,.0f);f(t,' ');f(t,L' ');f(t,u' ');f(t,U' ');f(t,"");f(t,L"");}int main(){f(0);f(0l);f(0u);f(0ul);f(0ll);f(.0);f(.0l);f(.0f);f(' ');f(L' ');f(u' ');f(U' ');f("");f(L"");f(u"");f(U"");}

Наконец, приз в номинации «Чистейшие руки» присуждён Джону Регеру с отличным использованием рекурсии.

struct x struct z<x(x(x(x(x(x(x(x(x(x(x(x(x(x(x(x(x(y,x(y><y*,x(y*w>v<y*,w,x{}
Tags:
Hubs:
+92
Comments 39
Comments Comments 39

Articles