アカウント名:
パスワード:
C++なら、再帰的テンプレートでコンパイル時に計算したいところだけど、再起禁止っていうのがコンパイル時も含むなら除外かなあ。ってことで、$title。
ああ、とても行儀の良いコードですね。特に、数値の出力がきちんと print_n に関数化されていて、longjmp がただのgoto代替品じゃなく、ロングジャンプらしい威力を発揮してるあたりが。
私が思い付いたのはせいぜいこんなのです。 #include <iostream>#include <csetjmp>std::jmp_buf jump_buffer;int main(void) { int count = 1 + setjmp(jump_buffer); if (count <= 100) { std::cout << count << std::endl; std::longjmp(jump_buffer, count);
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
gotoがだめならsetjmp()、longjmp()すれば良いじゃない (スコア:1)
C++なら、再帰的テンプレートでコンパイル時に計算したいところだけど、
再起禁止っていうのがコンパイル時も含むなら除外かなあ。
ってことで、$title。
Re: (スコア:2)
Re: (スコア:1)
ああ、とても行儀の良いコードですね。
特に、数値の出力がきちんと print_n に関数化されていて、longjmp がただのgoto代替品じゃなく、ロングジャンプらしい威力を発揮してるあたりが。
私が思い付いたのはせいぜいこんなのです。
#include <iostream>
#include <csetjmp>
std::jmp_buf jump_buffer;
int main(void) {
int count = 1 + setjmp(jump_buffer);
if (count <= 100) {
std::cout << count << std::endl;
std::longjmp(jump_buffer, count);
Re:gotoがだめならsetjmp()、longjmp()すれば良いじゃない (スコア:2)