最もバグの多いC ++コードのコンテストの結果

長い議論の後、Grand C ++エラー爆発コンペティションの勝者発表されました 。 賞は2つのカテゴリーで発表される予定でした。 最初の参加者は、最小限のコードで最大数のエラーで競いました。 2番目のノミネートは創造的で、量とサイズではなく、グリッチの品質と美しさが重要です。



その結果、プログラマーのエド・ハンウェイは絶対的な勝者に選ばれ、そのようなプログラムを送った。



#include ".//.//.//.//jeh.cpp" #include "jeh.cpp" `
      
      



Hanwayプログラムは、このカテゴリの最も近い競合他社のプログラムよりも6倍のエラーメッセージを引き起こしました。



平野カテゴリーのエラー数の勝者はダブルインクルードのプログラマークリスホプマンでした。



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





Clean Handsカテゴリーでは、プリプロセッサーの使用は禁止されており、Mark Aldorasiはそのようなプログラムで勝ちました。



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





Best Cheatカテゴリーでは、すでに述べたChris Hopmanが勝者に指名されます。 審査員は、「C ++テンプレートよりも理解しにくい唯一の言語であるPerlの使用」に特に言及しました。



 /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->
      
      





「もっともらしいコード」のノミネートでは、Victor Zverovichの作品が受賞しました。 ju審員によると、そのようなプログラムは、それを理解しようとしている人から生きたいという欲求を奪う可能性があります。



 #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"");}
      
      





最後に、Cleanest Handsノミネートの賞が、再帰をうまく利用してJohn Regerに授与されました。



 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{}
      
      






All Articles