C++0x 4 ..
[2ch|▼Menu]
855:デフォルトの名無しさん
08/12/26 01:56:50
>>854
だからさ、それじゃ「std::exception の what() を表示する」っていうコードが書けないじゃん。

今のドラフトじゃ
throw std::runtime_error("実行時エラー");
throw std::runtime_error(u8"実行時エラー");
の両方が黙ってコンパイルできてしまうし >838 にある "may be ..." にどちらも
違反しない。複数のライブラリを使ってたりすれば同じプログラム内で両方使われてる
可能性だって出てくる。 catch (std::exception const&) {...} 中でどうすりゃいいんだよ、
って話。

856:デフォルトの名無しさん
08/12/26 02:01:02
>>855
標準の枠内で書きたければそうすればいいし、
枠からはみ出る必要があればそうすればいい。

> だからさ、それじゃ「std::exception の what() を表示する」っていうコードが書けないじゃん。

問題ない。表示されるかどうかは、
取り出してからどう扱うかと環境によるってだけ。



857:デフォルトの名無しさん
08/12/26 02:07:43
>>856
> 標準の枠内で書きたければそうすればいいし、

「標準の枠内で書く」ということがどういうことか定まらないのが問題なんだろ。

> 問題ない。表示されるかどうかは、
> 取り出してからどう扱うかと環境によるってだけ。

「○○だと困る」って話をしてるのに「問題ない。○○ってだけ」とか、もうね。

858:デフォルトの名無しさん
08/12/26 02:10:43
定まってる。
charには何を入れてもいい。


859:デフォルトの名無しさん
08/12/26 02:17:20
>>858
「何を入れてもいい char の列を表示するコード」、ってバイナリダンプとか?

860:デフォルトの名無しさん
08/12/26 02:20:07
>>838
localeとfacetで出来るよ。


861:デフォルトの名無しさん
08/12/26 06:31:00
>>842
「真面目な部分」として「誤字の訂正」をあげるようなヤツに「頭悪すぎ」とか言われたくないなw

862:デフォルトの名無しさん
08/12/26 07:31:16
変なのが沸いてるな・・・

863:デフォルトの名無しさん
08/12/26 08:49:40
what()のメッセージに付記入れるなら__func__にも付記欲しいな
人が読めるようにとかオーバーロードやテンプレート実体化ごとに区別付くようにとか
縛りがないとどうせマングリング名になるだろ

864:デフォルトの名無しさん
08/12/26 17:09:44
和製の処理系とか見たこと無いんだけど。
JISにおけるC++規格って誰が使うの?

865:デフォルトの名無しさん
08/12/26 17:17:38
富士通が処理系出してたよ。
templateも結構まともだった。

866:デフォルトの名無しさん
08/12/26 17:33:23
日立もつくってますね。
boostもサポートされているようです。


867:デフォルトの名無しさん
08/12/26 17:45:13
ほぇ〜、意外。
ぶっちゃけGCCからフロントエンドパクればいいだけじゃんとは思うんだけど。
なんか自作する理由があんだね。

868:デフォルトの名無しさん
08/12/26 17:55:49
大型やっているところなんでも揃えとかないといけないから。
あれがないって事になると顧客を失う。

869:デフォルトの名無しさん
08/12/27 00:40:53
スレリンク(tech板)
こっちで話題になってるんですが"default constructed"って何なんでしょう
詳しい人いませんか

870:デフォルトの名無しさん
08/12/27 00:46:57
default constructorによるconstructのことだろ。

871:デフォルトの名無しさん
08/12/27 01:01:42
クラスはそれでいいんですけど
"default constructed"された非クラス型が
value initializedされるのかdefault initializedされるのかが問題なんです

872:デフォルトの名無しさん
08/12/27 01:58:58
POD 型の場合、0 初期化されるの? されないの? って問題だな。

873:デフォルトの名無しさん
08/12/27 02:51:38
これってさぁ、基底クラスにObjectは採用してくれるの?

874:デフォルトの名無しさん
08/12/27 02:52:54
JavaのObjectクラスみたいな全クラスの暗黙の基底クラス?
するわけがない

875:デフォルトの名無しさん
08/12/27 08:59:56
>>864
あ、NECもSXシリーズのためにコンパイラ作ってましたね。
スパコンのベンダはだいたいC++のコンパイラを作っている、と。


876:デフォルトの名無しさん
08/12/27 10:16:00
>>873
void*でエエがな。リフレクションならtype_infoを継承してリフレクション情報
を混ぜたクラスをtypeidで返すように各ベンダがすればいいだけだし。
関数テーブルが標準で乗るような設計はC++の理念に反する。

877:デフォルトの名無しさん
08/12/27 14:53:09
>875
SXC++はtemplateが哀しいほど使えないぞ
complex<>も遅くて話にならないし

878:デフォルトの名無しさん
08/12/27 15:12:12
Objectが基底クラスじゃないからライブラリや設計が面倒くさいのに・・・
templateで無理やりぶん回すこともなくなるのに

879:デフォルトの名無しさん
08/12/27 15:26:31
>>878
あんまりプログラミング言語のこと知らないんだね。

880:デフォルトの名無しさん
08/12/27 15:43:41
>>878
キミObject型を何につかってんの?
現C++はSmalltalkやObjective-Cの様にObjectクラスが
存在しないとオブジェクト生成すらままならないという訳じゃないんだけど。

881:デフォルトの名無しさん
08/12/27 15:49:43
むしろC++はノイマン型アーキテクチャを直接叩ける言語にしては、
異常なくらいプリミティブ型へのサポートも厚い言語。
登場した時は恐れ入りました感があった。

今流行りの言語ではプリミティブ型コンテナの
ボクシング/アンボクシングが盛んだけど、
そのきっかけの一つになったと思っている。

C++は今のやり方を貫いて欲しい。

>>880
Objective-Cは、プリミティブ型のことは知りません、
Cで取り扱ってくださいって態度。

882:デフォルトの名無しさん
08/12/27 15:49:46
Smalltalk ならともかく、他の言語で単一継承モデルを採用している理由はなんなのかな
多重継承時のトラブル対策のみ?

883:デフォルトの名無しさん
08/12/27 15:59:16
interface/protocol があると多重継承はあんまり要らない気がする

884:デフォルトの名無しさん
08/12/27 16:01:19
>>881
SymbianやAndroidなど組み込み機器用のOOPとして現役だしね。
>>878みたいなことしても、客が逃げていくだけで何のメリットもない。

>>882
実装継承以外がinterface, trait, conceptになっただけで、
今は事実上多重継承ばかりかと。

885:デフォルトの名無しさん
08/12/27 16:10:08
てか、Objective-Cとか知ってる人間からすると、
実装無しで継承って(笑)と思ってしまう。
interfaceなんかはあくまで、型システムによって機能しなくなった
メッセージングを補完する為だけの苦肉の策で、本来の継承とはかけ離れたよに思う。


886:デフォルトの名無しさん
08/12/27 16:15:54
>>884
Mixinは実装多重継承との関わりがあると言っていいんじゃないの?

887:デフォルトの名無しさん
08/12/27 16:16:12
>>872
されない
struct foo {
 char bar[1000000]
}
が自動的に初期化されたらいやだろう
デフォルトコンストラクトは文字通り「何もしない」ので不定値が入る

888:デフォルトの名無しさん
08/12/27 17:05:41
Objective-Cとか知ってる人間(笑)

889:デフォルトの名無しさん
08/12/27 17:09:20
>>882
多重継承は仮想関数テーブルが複雑になって実装が面倒だからじゃね?

890:デフォルトの名無しさん
08/12/27 17:14:00
>>888
そうか?見識が広がっていいと思うぞ。
C++とは真逆の言語だからね。



891:デフォルトの名無しさん
08/12/27 17:38:32
>>889
invokeinterfaceやmixinでも同じだよ。

892:デフォルトの名無しさん
08/12/27 18:00:09
>>891
問題は仮想継承辺りの扱いかもね。

893:デフォルトの名無しさん
08/12/27 18:04:36
いい加減exportの扱いどうにかならんか?
0xなるんだから委員会も、もう少し強制するなりしろや。
コンパイル速度が遅くてかなわんぞ。

894:デフォルトの名無しさん
08/12/27 18:10:27
exportは実装に見合うだけの利益はないよ。
コンパイル時間が一割ぐらい早くなるかもしれんが、exportによって、
今までできなかったことができるようになるとか、そういうことは一切ないから。

895:875
08/12/27 18:35:24
>>877
実際に使ったことはないのですがw
情報ありがとうございます。
まあ、日立、富士通、NECといったスパコンベンダは
C++コンパイラを作っているのは事実、ということで。


896:デフォルトの名無しさん
08/12/27 18:58:54
>>887
引用スレに書かれている通り、foo() の書き方だと0初期化だよ。その互換性の話をしているんだと思う。

897:デフォルトの名無しさん
08/12/27 19:26:09
>>894
 そんなにみみっちいかなぁ。
 GCCのpragmaでやってるような、翻訳単位ごとにテンプレートのインスタンスが
発生するという事態は改善できるだろ。それから、ヘッダーの見通しもよくなるし、
STLの内部実相の為にベンダーが用意した__imp__comperなんて関数も取り込まなくて
済むようになる。(ファイルスコープが効く)
 まぁ、実装が一つしか無いから机上の空論ではあるけどね。

898:デフォルトの名無しさん
08/12/28 19:34:04
class Parent
{
public:
int Method(int);
};
class Child:Parent
{
public:
using Parent::Method;
};
って感じのprivate継承とか
static using
{
 struct
 {
  int a,b;
 };
 char c:
};
みたいな無名共同体。
int (Class::*member)=0;
の様なメンバー変数に対するポインタ(メンバー関数では無い)
なんて、使ってる人いる?むしろ使ったことある人いるか?

899:デフォルトの名無しさん
08/12/28 19:38:46
private継承は使うだろ普通に
無名共用体はC++ではあんまり使わないかもしれないけどCではよく使う

900:デフォルトの名無しさん
08/12/28 19:40:03
上に関しては、そんな書き方初めて見た。
それprivate扱いなの? 書き忘れ?

901:デフォルトの名無しさん
08/12/28 19:50:43
>>900
C++のclassはアクセス指定を省けば
基本private。structはその真逆。

902:デフォルトの名無しさん
08/12/28 19:58:21
なるほど、そのルールは継承にも適用されてたのね。。

903:デフォルトの名無しさん
08/12/28 20:22:20
メンバー変数に対するポインタは、
自作インタープリタ上のオブジェクトを
C++のクラスに結び付けるテンプレートを書いた時に使ったことがある。


904:デフォルトの名無しさん
08/12/28 23:43:57
メンバ変数に対するポインタは
リストの prev/next のどちらにも適用できる処理を書く際に使えたりする。

905:デフォルトの名無しさん
09/01/01 02:18:43
いよいよ09年なわけだが

906:デフォルトの名無しさん
09/01/01 03:41:14
今年中に纏まるとは思えないのだが。

907:デフォルトの名無しさん
09/01/01 03:59:11
日本限定なら09年度という便利な言葉が使えるんだが。

908:デフォルトの名無しさん
09/01/01 04:04:08
それでも猶予は4ヶ月しか増えないのだが

909:デフォルトの名無しさん
09/01/01 06:57:41
いや、そもそも0x年まであと27年もあるわけだが

910:デフォルトの名無しさん
09/01/01 07:08:47
C++0xa

911:デフォルトの名無しさん
09/01/01 09:10:41
(++0x)
だからあと2年猶予があるぞ

912:デフォルトの名無しさん
09/01/01 09:13:14
どうせ急いで制定してもC++プログラマの大多数は飛びつかないな・・・

913:デフォルトの名無しさん
09/01/01 10:13:30
とりあえずautoだけでも早く使えるように頼む

914:デフォルトの名無しさん
09/01/01 16:07:46
いやいやunique_ptrを

915:デフォルトの名無しさん
09/01/01 16:14:38
スレッドの概念が入るだけでありがたい

916: 【豚】 【282円】
09/01/01 23:19:47
variadic templatesが使えるようになるのはいつですか

917:デフォルトの名無しさん
09/01/01 23:25:07
2011

918:デフォルトの名無しさん
09/01/02 07:47:47
>916
gcc 4.3 以降を入れれば今すぐにでも。

919:デフォルトの名無しさん
09/01/04 03:38:53
const int n1 = 10;

constexpr int n2 = 10;
って何が違うの

920:デフォルトの名無しさん
09/01/04 03:42:53
右辺が整数定数なら差はないんじゃね

921:デフォルトの名無しさん
09/01/04 13:49:48
constexpr って導入する意味あるの?


922:デフォルトの名無しさん
09/01/04 13:58:07
constexprな関数の導入に意味がある。

923:デフォルトの名無しさん
09/01/04 14:25:05
constexpr constructor凄く便利。

ダラダラと逐次的な初期化コードや
それを含む初期関数を書く必要がなく、
データを宣言的に書ける。

924:デフォルトの名無しさん
09/01/04 21:38:33
>>923
kwsk... constexpr って(有る程度複雑な)計算結果が定数として扱えるように
なるとしかわかってないんですが、それがデータが宣言的にかけるとは
どういうことでしょう?

925:923
09/01/04 23:00:49
日本語訳もあるからググれ



最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5389日前に更新/168 KB
担当:undef