The --C Programing Language
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG0002名無しさん@Emacs
NGNG0003デフォルトの名無しさん
NGNGif true と死体のに if (true) とせにゃならん。
return は付けても付けなくてもいいのに。
あとブロックにラベルをひっつけたい。
でないと大域脱出に goto 使わなきゃならんし。
switch ももーちっと拡張してほしいなっと。
0004デフォルトの名無しさん
NGNG0005名無しさん@Emacs
NGNG>return は付けても付けなくてもいいのに。
returnは'付けない'だろ. ただ式として()を付けても付けなくても
同じ評価がなされるから, 可読性・趣味の観点で付けてる奴がいるだけだ.
>あとブロックにラベルをひっつけたい。
>でないと大域脱出に goto 使わなきゃならんし。
goto否定派なので何とも…今だかつてgoto使ったことないし.
>switch ももーちっと拡張してほしいなっと。
同意.
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGC--は既にあるよ。
0008デフォルトの名無しさん
NGNGしっくりこない。
構造体には付けなくちゃ駄目なのにな。
おそらく
struct {} hoge;
というケースがあるからなのだろうけど。
0009デフォルトの名無しさん
NGNG関数本体はtypedefできないから。
0010デフォルトの名無しさん
NGNG>同じ評価がなされるから, 可読性・趣味の観点で付けてる奴がいるだけだ.
if とかもそうしてほしかったりする。
for とかは付けないとどうしようもなさそうだが。
ていうか for の構文自体汚くて嫌いだなっと。
0011デフォルトの名無しさん
NGNGreturn は昔、関数として実装されていた処理系があったらしい。
後に構文として正式に定義された。
つまりreturn(...);は歴史的経緯。
0012デフォルトの名無しさん
NGNGforはこう変更するとか。
for int i = 0 to 3 step i++ do ;
for int i = 0 to 3 step i++ {}
…うわあ。
0013デフォルトの名無しさん
NGNGDelphiでも使えや。
0014デフォルトの名無しさん
NGNGif 式 true文 false文
・・・そうでもないか?
0015デフォルトの名無しさん
NGNG0016名無しさん@Emacs
NGNGfor文の構文ね…whileで同じことやるよりはスッキリしてて俺は好きだよ.
for(i = 0 ; i < n ; i++)
って書いたら, あぁiを0〜(n-1)ねって直観的に分かるじゃん.
それ以外の方法でループする時はwhile使う.
>>11
ふぉーん…初耳ぽ.
0017デフォルトの名無しさん
NGNG式として解釈できる様にしてほしい。
int i = if (n < 10) 0 else while (...) ;
とか。
0018デフォルトの名無しさん
NGNGrubyみたいで素敵。
でもコンパイラ作れるのかな。
0019名無しさん@Emacs
NGNG利点が分からんとかじゃなくて, そのサンプルコードの挙動が分からん….
002017
NGNGwhile(繰り返し条件) 繰り返し文 else 終了値;
みたいにするか!
ifと絡めると混乱しそう。
0021名無しさん@Emacs
NGNG>return は付けても付けなくてもいいのに。
これさ,もしやるならthenの変わりに','使ったらどうよ.
if variable,
sentence;
002217
NGNG頭がぼーっとしてるので、なにも考えてません。
20と絡めると、
int i = if (n < 10) 0; else while (...) ... else n;
です!
elseの掛かり方がさっぱりな素敵な構文ですね!
0023名無しさん@Emacs
NGNG002417
NGNG結構、説得力ありそうですね!
おれ頭いい!
0025デフォルトの名無しさん
NGNG英語っぽくて素敵。
どうせなら ; を . にしてみるとか。
0026名無しさん@Emacs
NGNGそれするとCでは何とかなるけどC++でアヤスィな…w
ごめん, 冗談で言っておいてアレだけど何気にいい構文な気がしてきた…w > if
002717
NGNG,は既に連結演算子として使われているので混乱すると思いますよ!
普通に括弧かthenでいいと思いますよ!
>>23
わたしもこんなのは嫌です!特に他人が書いたソースは!
0028デフォルトの名無しさん
NGNGでブロックの脱出が出来たらいいなあ。
while (i)
for (j = 0; j != 0; j--)
if (j == 0) break while;
とか。何も指定なしなら一番上のブロックを抜ける。
{
break; // 一番内側のブロックを抜ける
}
continue も同様に、とか。
ブロックにラベルというのは
label : {
while (i)
for (j = 0; j != 0; j--)
if (j == 0) break label;
}
こんな感じかな。便利?
0029名無しさん@Emacs
NGNGあぁ, 連結演算子っていうのか…名前知らんかったw 確かに被るな, 面倒っぽ.
>>28
Javaにあるよ, そんなの. 言語仕様に書いてあった.
…けど使ったことないし,使い方が分からん….
0030デフォルトの名無しさん
NGNG開発スレに帰れ!
つーか、あそこ活動してんの?
0031名無しさん@Emacs
NGNG誤爆?
何でもいいけど, >>1の以降とは裏腹に「珍妙文法を列挙せよ」なスレになってきたな.
0032デフォルトの名無しさん
NGNGうわあ本当だ。ラベルつきブロック脱出まである。
さすがにgoto使えない言語だけのことはあるなあ。
0033デフォルトの名無しさん
NGNGそんな言語使えるの?
0034名無しさん@Emacs
NGNGあれば, gotoなくてもプログラム書けるよ….
そんな事したら要らないフラグが立ったり…云々ってのは設計とか
アルゴリズムがヘタレだからじゃない?
break,continueはソースの見通しよくなるから必須だねぇ…. gotoと
似てるじゃん, とか言わないでね. 制限が在る分, 可読性がいいんだから.
でも正直, goto云々じゃなくてスパゲッティ作ってくれるウザィ人を
よっぽど廃絶したいよ….
0035デフォルトの名無しさん
NGNGcase 2 < :
case "":
case === CHoge:
0036名無しさん@Emacs
NGNGcaseに拘らないでこうしたらどうよ.
switch {
variable_1 <= 1:
sentence_1;
break;
variable_2 > 2:
sentence_2;
break;
string.equals(""):
sentence_3;
break;
}
これに加えて通常のcaseも使えると…イイ!!
0037デフォルトの名無しさん
NGNG特にC++で、特定のメンバ関数からしか呼び出さない非常にローカルな関数を、
同じようにメンバ関数にするのはいやん。
0038名無しさん@Emacs
NGNGそのためのprivateじゃないのかと小一時間…(略).
gccなら独自拡張で関数内関数をサポートしてるよ.
もちろん, -ansiとか付けると文句タレるが.
0039名無しさん@Emacs
NGNG関数内関数ってpascalだと使えるの? Googleでヒットしたんだが.
http://www.google.com/search?hl=ja&inlang=ja&ie=Shift_JIS&q=pascal+%8A%D6%90%94%93%E0%8A%D6%90%94&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0040デフォルトの名無しさん
NGNGいや、privateなprivateなのがイイ!!
gccでは出来るのか。gccは食わず嫌いであまりいじったこと無かった。thanks!
>>39
pascalだと出来るらしいね。
inner functionでgoogleってみそ。
0041名無しさん@Emacs
NGNG>privateなprivateなのがイイ!!
そんなこと言ってるとlong longみたいにprivate privateができるぞ…止めてくれw
>inner function
さんくすこ. …が, 正直使いたくないな…w
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG開発室
http://isweb43.infoseek.co.jp/computer/am_dev/cgi-bin/bbs/dev/index2.html
かちゅーしゃ用定義
isweb43.infoseek.co.jp/computer/am_dev/cgi-bin/bbsdev開発室
ちなみに >>30 の言う開発スレはここのことです。
(2ch のスレッドは落ちました)
0044デフォルトの名無しさん
NGNGかちゅーしゃ用定義
isweb43.infoseek.co.jp/computer/am_dev/cgi-bin/bbs dev 開発室
bbs dev 開発室 とTAB で区切ってください
0045デフォルトの名無しさん
NGNGint main() {
class inner { public: static void main() { cout << "ok" << endl; } };
inner::main();
for_each(v.begin(), v.end(), inner::main());
}
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNGあ、なんかそれいい。
0049デフォルトの名無しさん
NGNGstatic intdata;
static intmain() { return data; }
};
// int inner::data; // これだとエラー
inner::data = 32;
cout << inner::main() << endl;
//こうできたら面白そうなんだけど。
classinner{ public:
static intdata(boolisset, intv = 0){
static ints;
if(isset)s = v;
returns;
}
static intmain(){ returndata(false); }
};
inner::data(true, 32);
cout << inner::main() << endl;
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNG0052(≧▽≦) ぶわっはっはっはっ
NGNG0053名無しさん@Emacs
NGNG>>48
使うのはいいだろうが, メンテナンスする側に回ると….
経験談から.
0054デフォルトの名無しさん
NGNGその関数からしか使われない関数ってのが明示されて、逆にいいと思うんだけど。
あったらいいなと思ってた > 関数内関数
0055名無しさん@Emacs
NGNGinnerクラスに50個近く関数内関数があるとねぇ….
機能自体に問題はないと思うけど, あれ以来トラウマがな….
キチンと使えるなら問題ないのかもしれんが.
0056デフォルトの名無しさん
NGNGperlだとできるよね。あれで、関数内関数みたいな事の代用できそう。
0057デフォルトの名無しさん
NGNGいや、これから使おうと思うのでトラウマになるようならデメリットあるなら、教えて欲しいのだが・・・
それ本当に関数内関数と関係ある?
0058名無しさん@Emacs
NGNGいや, 多分ない. 始めて見た時の使い方があまりにもアレだったんだと思う.
普通にクラス作る時みたいに旨く切り分けてinnerクラスにすればオケーだよ.
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNGmulti_return()みたいなのを使いたいときがある
0061デフォルトの名無しさん
NGNGsetjmp(), longjmp()じゃ駄目なの?
0062デフォルトの名無しさん
NGNG例外使え
0063デフォルトの名無しさん
NGNGああ、そうか。
例外使えばやりたかったことストレートにできる。
どうも。
0064名無しさん@Emacs
NGNG>>62よ, ありがとう.
0065デフォルトの名無しさん
NGNGvoid (* pf)(int n) = { cout << n << endl; };
vector< int > v(10);
for_each(v.begin(), v.end(),
こんな感じ?
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNGperlの話だけど。
実際に使ったことない(その上ラクダ本会社に置きっぱなしな)ので
例は書けないが、
my $foo = sub {
print "ちんこギター\n";
}
&$foo; # これで実行(?)
こんな感じだったような…
0068デフォルトの名無しさん
NGNGCでは(ちゃんと普通に定義されている)関数へのポインタは作れる。
でも、その場限りの、無名関数を定義して、そのポインタを保持することはできない。
これでいいんだっけ?
C++も同じか。
無名クラスは作れても、無名関数は作れない。(のか?
0069名無しさん@Emacs
NGNGmy $foo = sub {
print "ちんこギター\n";
}; # (*)
&$foo;
(*)の部分にセミコロンがいる, そんだけ.
0070デフォルトの名無しさん
NGNGなるほど。サンクスコ。
(…しかし俺のうろ覚え知識はスゲーぜ…)
0071名無しさん@カラアゲうまうま
NGNG> でも、その場限りの、無名関数を定義して、そのポインタを保持することはできない。
つーかランタイムに関数を作る方法は(一般に)ない。
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNGC/C++みたいな、非スクリプト言語じゃ無理って事かな。
処理系がどう実装されてるか、とかの話になると良く分からん。
0074デフォルトの名無しさん
NGNG別の関数の中に置く事ができたような気が
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNG知らなかった。それは便利ですな。
0077デフォルトの名無しさん
NGNG関数定義のうしろでは普通に使えちゃうんだよね。
0078デフォルトの名無しさん
NGNG要求するから嫌。重くなるだけならいいけど、例外を起こされたら
たまらない。
vector(vector &src, move_t) throw()
: _M_start(src._M_start), _M_finish(src._M_finish),
_M_end_of_strage(src._M_end_of_strage) {}
みたいに定義しておくと、returnする時とかの、本当のコピーが
要らない場合に呼ばれるようにしてほしい。ついでに
void vector::assign(vector &src, move_t) throw() {
vector tmp(src, move_t);
swap(tmp);
}
なんてのも用意して、STLから使えば、もっと安全で高速なコンテナが
作れるし。uninitialized_copy()やdestroy()があるくらいだから、
オブジェクトの移動くらいサポートしてもいいと思うんだけど。
0079デフォルトの名無しさん
NGNGC++はコンストラクタや演算子オーバーロードや例外等などの
プログラマから見えない処理がムカツク。
0080デフォルトの名無しさん
NGNG/@@\
|三Å三| ・・・
\_____/
6(---)o
O-O
0081名無しさん@Emacs
NGNGそれでいい。1.5で始めの2つは付くかも…らしいんだけど。
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG0084名無しさん@Emacs
NGNGクラスにしてしまうかで代用。俺は用途にとって使い分けするけど。
前者は変な入力があった場合にメソッド内でIllegalArgumentExceptionあたり
投げたりとかしないといけないし、後者もnullの入力は止めれないから美しくないと思う。
C#ってデストラクタ無いの?GCはあるみたいだけど。
0085デフォルトの名無しさん
NGNG0086名無しさん@Emacs
NGNGhttp://www.c-sharpcenter.com/Tutorial/GC.htm
GCあるじゃん(笑)
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNGそう
それでゴミをそこら中にまき散らし
掃除のおばちゃんがゴミをいくつか拾い忘れたりする
0090デフォルトの名無しさん
NGNG更に整理整頓までしてくれるおばちゃんもいるのだが、雇用条件が厳しいらしい。
0091デフォルトの名無しさん
NGNG○oak
か?
0093名無しさん@Emacs
NGNGtypo指摘thx。樫の木が語源だからOakですたい。
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1020711295/
まだ落ちてない気がする…どちらにしろ寂しいのは間違いないが。
作るって言ってた人も最近見かけないし。
0096デフォルトの名無しさん
NGNG貴様さっきからそのAA使いたいだけちゃうんかと(略
0097デフォルトの名無しさん
NGNG>C言語にテンプレートだけ追加した言語が欲しい。
>C++はコンストラクタや演算子オーバーロードや例外等などの
>プログラマから見えない処理がムカツク。
コンストラクタ、オーバーロード、例外等の機能を使わなければいいだけなんでは。
0098デフォルトの名無しさん
NGNG標準ライブラリ使わない、ってキッツイ気が
てゆうかどれも、見えない処理でも無いけどな…
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGgotoとifだけで。
__declstruct void for(init; test; inc) {statement}:
{
init();
back:
if (!test()) {
goto end;
} else {
statement();
inc();
goto back:
}
end:
}
Lispってこういうことできるん?
0102デフォルトの名無しさん
NGNGmacro で出来るよ。
■ このスレッドは過去ログ倉庫に格納されています