Re: 構造体の初期化

投稿ツリー


このトピックの投稿一覧へ

なし Re: 構造体の初期化

msg# 1.1.1.1
depth:
3
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/4/19 13:27
SHOO  管理人   投稿数: 658
あるいはメンバ変数がすべて公開されている非constな構造体の初期化なら、with文とかでもいいのでは?
#code(d){{{
ST s;
with (s)
{
foo = "foo";
bar = (string str){return str;};
}
}}}


とりあえず構造体のコンストラクタを書くと構造体リテラルを使うときに呼ばれるようなので、
デフォルトではない構造体の初期化を行う場合は、
#code(d,nonumber,nooutline,nomenu){{{
ST s = x;
}}}
の形式で初期化を行わず、
#code(d,nonumber,nooutline,nomenu){{{
auto s = ST(x);
}}}
の形で初期化を行うようにすれば、コンストラクタが呼ばれるか、なければ構造体リテラルとされるはずなので、無用な混乱を避けることができるかもしれません。
D言語的には、どれか一つに限ってきっちりかっちり使うような感じにしたほうが、らしい気がする。
「コンパイラの警告レベルはいつも最大にして、 警告はエラーとして扱うように設定している人」をターゲットにしてると明言してる文章もあるくらいだし。
投票数:149 平均点:3.96
返信する

この投稿に返信する

題名
ゲスト名
投稿本文

  条件検索へ


メインメニュー

ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録

Menu