[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 18:55 / Filesize : 156 KB / Number-of Response : 861
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++0x 5



1 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 23:10:49 ]
The C++ Standards Committee
www.open-std.org/jtc1/sc22/wg21/

wikipedia
ja.wikipedia.org/wiki/C%2B%2B0x

C++0x
pc11.2ch.net/test/read.cgi/tech/1149440647/
C++0x 2
pc11.2ch.net/test/read.cgi/tech/1191842951/
C++0x 3
pc11.2ch.net/test/read.cgi/tech/1204808027/
C++0x 4
pc11.2ch.net/test/read.cgi/tech/1214407525/

666 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 19:43:55 ]
C言語の話ではないがCを参考にした演算子系を持ってる言語で第2項に順次式おいたときとか()でくくらずに条件式を項にしたときとかの挙動が信用できない。

667 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 19:48:15 ]
>>664
傷口が広がるだけだぜ

668 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 19:55:12 ]
>>667
何で?

669 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 20:11:12 ]
>>664
ありそうでなかったパターンのいいわけだな。

670 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 20:16:14 ]
レベルの低い現場で言われたこと無い?
三項演算子禁止とか。
>653-654の流れで書いたんだが

671 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 20:19:20 ]
レベルの低い現場に加わるのは、
それなりのレベルの低さが要求されるので、
残念ながら未体験です。


672 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 20:21:15 ]
ああ。やっと流れが飲み込めた。
レベル低くてすまんかった

673 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 22:46:55 ]
で、三項演算子が0xで何か変わったのかね?

674 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 22:48:28 ]
発端は何気ない美少女中学生のつぶやき



675 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 22:50:06 ]
gcc4.4のautoの使い心地とか誰か報告してくれよ

676 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 22:51:29 ]
ローカルでstaticでない変数をauto変数って言ってたけど、違う意味になってしまった。

677 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 22:53:13 ]
で、使い心地は?

678 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 23:02:47 ]
つかったことがありません。

679 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 23:05:36 ]
使い心地も何も、新しい機能は何も無くて、自明な宣言の文字数を
省略できるだけだから、何も変らないんじゃね?
後方互換性を気にするなら、愚直に今まで通り宣言するだけだし。

680 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 23:06:08 ]
たとえばイテレータを書くときとか便利そうだね。
つかったことないけどね。Auto。。。

681 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 23:13:38 ]
結局新機能なんか誰も使わないってことか
そうだよな、互換性考えたら使えるわけないよな

682 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 23:33:46 ]
>>681
C++に新たなパラダイムを与えるものならともかく
auto は打つ文字数が減って腱鞘炎が直りました、
ぐらいしか変わらないという意味。

683 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 00:46:40 ]
大事じゃねぇか、「腱鞘炎が直りました」。


684 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 00:54:09 ]
auto が一般的になればテンプレートの中で演算し放題なパラダイスが訪れるよ。



685 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 01:19:11 ]
>>682
でも右辺値参照も誰も使ってないぞ
4.3からだから入ってから大分経つのに

686 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 02:58:28 ]
マクロだとautoは便利。

687 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 08:31:39 ]
>>684
D言語のように静的に文字列弄れる訳でもなし、戻り値推論(以下)できる訳でもなし、C++0x程度じゃまだまだ。
auto Square(T)(T t)
{
    return t * t;
}

688 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 08:57:44 ]
戻り値推論って有れば便利だけどさ、その程度の関数だったら、これでよくね

// 関数の文法は統一されるはずだと信じてる
template < typename T >
[] Square( T t ) -> decltype(t * t)
{ return t * t ; }

Boost.labmdaみたいな変態的なライブラリを使った変態的な型を返したい場合は、
重複はちょっと面倒だけど。

あと、動的に返す型が変わるような関数はどういう扱いになるの? コンパイルエラー?

689 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 09:48:57 ]
>動的に返す型が変わるような関数
?
returnが二つ以上ある関数のこと言っているなら両方の共通の型になる。

690 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 09:55:47 ]
いや、

if(乱数%2) return ほげほげ ;
else return はげはげ ;

みたいな。

共通の型? javaみたいに暗黙のうちに継承する型とかがあるの?

691 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 10:10:41 ]
>>690
動的にって言うけど、それってコンパイル時に静的に解決しなきゃいかん問題だよね。

692 名前:デフォルトの名無しさん [2009/04/30(木) 10:11:38 ]
>>690
C++で>>687は出来ないよ。

693 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 11:14:12 ]
>>690
intとlongならlongだし、A派生のBとA派生のCならAだし。

694 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 11:27:03 ]
auto func = objf_list<>::choice(any);
auto x = func();

返り値の連鎖は無理臭いけど何が出てくるかわからんワクテカ感は0xでも味わえると思う。



695 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 19:41:06 ]
>>688
今でも条件演算子でそういう状況になるので、
そのときどうなるかは決まっている。
それは戻り値推論でもそのまま採用すべきかものどうかは分からないけど。

696 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 00:05:47 ]
ラムダ式は簡単な戻り値推論できるから、関数構文と統合されれば
>>688ならこう書けるはず

template < typename T >
[] Square( T t ){ return t * t ; }

697 名前:デフォルトの名無しさん [2009/05/02(土) 03:39:09 ]
www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2855.html
Move constructor は例外を投げてはいけない・・・という話から、解決策として
noexcept という関数への修飾キーワードで例外を投げないことを
明示し静的にチェックできるようにしたうえで Move constructor はデフォルトで
noexcept にしよう・・・という話から、ついでにデストラクタもデフォルトで noexcept にしようという話。

今更こんな壮大な変更が取り込まれる可能性があるのか、甚だ疑問ではあるが、
確かにすごく欲しいとは思う。

698 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 06:16:54 ]
&&とか、本気なのか?
ワザと誤解して間違いそうな文法考えて、「分かるヤツだけが分かる!」
って、選民意識を得るために作ってるとしか思えん。
もうちょっと分かりやすいのを考えてほしい・・・

699 名前:デフォルトの名無しさん [2009/05/02(土) 06:35:56 ]
>>697
そこでキーワードをnothrowにしないのは意地?

700 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 08:08:24 ]
何の意地かは分からんがnothrowの方が分かりやすいのは確かだな

701 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 08:40:31 ]
exceptの方が明示的でいいかな
「投げません」って言われても「何を?」って思うけど
「例外無し」って言われると「ああ、例外無いんだ」って思う

702 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 09:10:40 ]
nothrowはすでに標準ライブラリに存在している名前だから無理っしょ

703 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 09:43:56 ]
>>702
何のための名前空間。

704 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 09:50:52 ]
次期標準にしようとしているのに?



705 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 09:54:43 ]
みんな使わないのに標準?

706 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 10:01:34 ]
>>703
名前空間で対策できるってことは予約語じゃなくて単なる識別子として導入?
そんなきもいのマジ勘弁

707 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 10:06:00 ]
throw 1;って例外を投げてることになる?

708 名前:デフォルトの名無しさん [2009/05/02(土) 10:55:23 ]
なる。

709 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 12:03:47 ]
>>706
まさにその通り。
operator new 関数に nothrow_t 型を引数として受け取るオーバーロードがある。
で、

struct nothrow_t {};
extern const nothrow_t nothrow;


710 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 12:07:23 ]
>>709
いや、それがあるからキーワードとして nothrow を追加するのは無理ってことだろ。

711 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 13:23:41 ]
attributeでいいじゃん…とおもったらattributeじゃダメな理由も書いてるな

型システムに入れるとかアホか

712 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 14:58:33 ]
C++0xがマトモに使われるとは思えなくなってきた。
C99と同じ道をたどるんじゃ。

713 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 15:04:38 ]
initializer_listとかが一部で使われるくらいだろうなぁ

コンセプトとかもう絶対無理

714 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 15:13:24 ]
boostの中の人のような変態の為の機能だから普通にC++を使う人が使わないぐらいなら想定内




715 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 15:15:15 ]
コンセプトはexport(笑)と同じ道を辿るだろう
誰も実装しない、出来ない

716 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 15:16:31 ]
コンセプトは標準ライブラリやBoostの中で使われれば十分だよ。
テンプレートが関わるエラーメッセージの改善という程度のことに役立つと信じて。

717 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 15:17:41 ]
いや、exportとは違うさ。
conceptを使うことには利点があるのだから。
exportは、コンパイル時間を多少短くできるってことぐらいしか利点がないから。
conceptなしでは、C++0xは語れないぜ。
C++0xの多くの機能が、conceptを前提にしているんだから。exportとはわけがちがう。

718 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 17:02:49 ]
でも実装が出来ないんじゃなぁ
conceptGCCとかいつまでやってんだよ
主な商用コンパイラも軒並みガン無視だし

719 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 17:04:22 ]
conceptの実装は時間がかかるぞ。
だいたい、中途半端な実装をリリースして、互換性の問題を引き起こしてもらっても困る。

720 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 17:10:02 ]
互換性は諸刃の剣だな

721 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 17:11:48 ]
conceptGCCはもう開発してないと思う…
9ヶ月くらい更新止まってるし、その前は1年3ヶ月更新止まってたし
www.generic-programming.org/software/ConceptGCC/download.php

722 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 18:19:16 ]
>>719
vcの人は1年くらいかかるとか言ってたな
vc11には入るんだろうか…?

723 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 19:22:41 ]
本家の concept ブランチでやってるんじゃないの?と思ったら
>At present, the concepts branch provides almost no support for concepts.
ttp://gcc.gnu.org/projects/cxx0x.html
とか書いてあるな、おい。
更新も 10 ヶ月止まってるっぽい。
ttp://gcc.gnu.org/viewcvs/branches/cxx0x-concepts-branch/

724 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 20:24:59 ]
GCCが匙を投げたとなると他も追従するかもしれないな
コンセプトオワタ



725 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 20:57:43 ]
まさに絵に描いた餅ですね

726 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 21:08:03 ]
コンパイラ開発者は標準化委員会にいないの?

727 名前:デフォルトの名無しさん [2009/05/02(土) 21:28:52 ]
少数で開発してるD言語にもコンセプト的な何かはあるのに、
GCCが実装できないってのは、C++の言語仕様の複雑さを物語っているようだ。

728 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 17:42:07 ]
規模と実装難易度を考えりゃ、Concept以外が全部実装されてからやっと本腰入れてConceptに取りかかるくらいのもんだろう。
4.5で何が実装されるかってだけでもwktk出来るさ。

729 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 17:54:55 ]
コンセプトがないと拡張for文もきないしライブラリの作り直しにも本腰入れられないだろ
さっさとしてくれ

730 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 00:35:12 ]
言語オタクな連中に規格を作らせるからこんな事になるんだ

731 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 01:36:56 ]
そうだよな。実務的な言語がものすごくキモい化物になって行く様は、おぞましい。

732 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 01:58:18 ]
現状維持派 → 表に出てこない
変えたい派 → 騒ぐ

止める人がいない

733 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 08:44:52 ]
HTML5ワークショップの実務に即した仕様策定がうらやましい

734 名前:デフォルトの名無しさん [2009/05/04(月) 13:08:00 ]
それが真実なら、とうの昔に標準GCが規定されてるはずだ



735 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 23:47:01 ]
しかし、本当にjavaより速いプログラムを作るのが難しい言語になって行くなァ。

736 名前:デフォルトの名無しさん [2009/05/04(月) 23:49:21 ]
それはない。

737 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 23:58:25 ]
VCが新ライブラリへの対応だけでも迅速に進めてくれればいいや
特に cstdint と regex

738 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 00:02:29 ]
>>735
とりあえず
> どんどん〜なっていく
っていうのは無いはず。


739 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 00:24:22 ]
i = i++ の結果は未定義なのでしょうか?

740 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 00:35:11 ]
未定義じゃないと思う。

741 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 00:36:57 ]
a[i++] = i;
の動作は未定義だそうだ

742 名前:デフォルトの名無しさん [2009/05/05(火) 00:37:51 ]
根拠

743 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 00:43:30 ]
>>739
codepad.org/JCtHYXzj

iは変化しないって思ってたけどそうじゃないんか。
実戦ではつかえないっすねー。

744 名前:デフォルトの名無しさん [2009/05/05(火) 00:49:59 ]
単にその処理系でそうなるだけなのか、C++でそういう定義なのか、分からないだろ。



745 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 00:51:04 ]
(´・ω・`)知らんがな
まぁ誰かが調べるまで気長に待てばいいじゃない

746 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 00:54:58 ]
未定義というよりは不定なのかな?

C# では
int i = 5;
i = i++;
System.Console.Write(i);
で 5 が出力されるので疑問に思ってちょっと調べてみたんですけど
規格みると副作用とか副作用完了点とかよくわからない

747 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 00:56:34 ]
「未定義」と「不定」を区別するならそれぞれの定義を。

748 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 01:02:01 ]
とりあえず++演算子は右辺に置くなということで。
「未定義or不定だからヤメロ」って言えれば楽なんすけどねー。

>>746
wktk

749 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 01:02:10 ]
区別はここみてそういう区別があるんだと思ったから

www.st.rim.or.jp/~phinloda/cqa/cqa7.html

750 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 01:04:54 ]
補足
www.st.rim.or.jp/~phinloda/cqa/cqa7.html#Q8

未定義だそうだ。

751 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 01:06:29 ]
おまえら揃いも揃ってスレタイよめないのか


752 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 01:12:15 ]
739程度が一目で未定義とわからない奴らが新規格のスレに何の用だ

753 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 01:19:27 ]
>>739-750

何この程度の低い流れ。自演?

754 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 01:44:52 ]
>>737
Regexは2008 SP1の時点で登載済み。TR1としてだけど。



755 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 02:10:50 ]
TR1との違いってコンセプト対応してるかどうかくらいだっけ?

756 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 06:35:57 ]
テンプレくらい読んでから質問しろ

757 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 06:37:42 ]
>>752
Sequence pointsすら分からない奴が、
まだ確定してない規格知ろうなんて十年早いよな。

758 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 11:16:01 ]
はいはいすごいすごいえらいえらいかしこいかしこい

759 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 12:34:08 ]
フィンローダなつかしいなー
あのころはCマガ面白かった

760 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 20:38:35 ]
>>736
経験不足のおバカさんだな。

761 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 12:23:26 ]
0xとあんま関係ないけど、UNICODEソースは仕様上なんか規程されてるの?
まぁ、サポートされてても日本語でソース書こうなんて思わないけどさぁ。

762 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 15:42:59 ]
日本語で書けるなら書きたい

763 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 15:49:00 ]
ソースコードに実装依存の文字が使えるということになっている。
まあ、今までも、C++のコンパイラは、ほぼ例外なく実装依存の文字が、少なくとも文字列リテラルやコメント内で使えたし、
いまさら規定しても何も変わらないと思うが。

764 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 18:58:57 ]
「実装依存の文字」の話はしていない。
UNICODEの話をしている。



765 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 19:40:52 ]
実装依存か・・・。VCでこんなコードも
通るんだが、現場とかで見るよう担ったらヤダなぁ、
変換するのがダリぃ。
int 二乗(int 引数)
{
 return 引数*引数;
}


766 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 19:54:44 ]
識別子に漢字が使えるのはC++0xの仕様?
コンパイラーの仕様?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<156KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef