- 1 名前:デフォルトの名無しさん mailto:sageteoff [2015/01/25(日) 12:07:29.52 ID:gAd5OZDm.net]
- プログラミング言語 D (D Programming Language) について語るスレッドです。
■本家 dlang.org/ - 公式(英語) www.kmonos.net/alang/d/ - 公式の和訳 (やや古いので注意) https://issues.dlang.org/ - D言語バグ報告 https://github.com/D-Programming-Language - D言語開発リポジトリ ■Wiki wiki.dlang.org/ - 公式Wiki dusers.dip.jp/ - D言語友の会(日本語フォーラムあり) ■プログラミング言語D (TDPL: The D Programming Language) Andrei Alexandrescu 日本語版 www.shoeisha.co.jp/book/detail/9784798131108 ソース貼付サイト dpaste.dzfl.pl/ <$><$> https://www.bountysource.com/trackers/383571-d-programming-language ■前スレ D言語 Part33 toro.2ch.net/test/read.cgi/tech/1396145538/ ■過去スレ、関連スレ makimo.to:8000/cgi-bin/search/search.cgi?q=D%8C%BE%8C%EA&sf=2&all=on&view=table&shw=5000
- 152 名前:デフォルトの名無しさん mailto:sage [2015/04/09(木) 21:10:41.59 ID:BNp5TkNs.net]
- コンパイルが最速でプロファイルもカバレッジもちゃんと動くdmdが最善でないとな?
win32/simd とか win64/seh とか足りないのはあるけど
- 153 名前:デフォルトの名無しさん mailto:sage [2015/04/10(金) 06:51:36.42 ID:uqc+UxkP.net]
- dmdのsimdってまだSSE2までしか対応してないのけ?
- 154 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 15:44:58.43 ID:E/CwOvDs.net]
- D言語ってなんで流行らないんですか?
- 155 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 17:32:39.43 ID:7fSRDMX5.net]
- ポストC++を目指してるんだけど
C++自体が使われてないから
- 156 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 17:42:57.03 ID:u+ugD/Y+.net]
- 俺が思うに、Cとソースレベルの互換を切ったのが不味かったな。
Cのヘッダが読み込めないんじゃ、生産性悪すぎ。 Cのライブラリを使おうと思っても、誰かがこっそりDに移植したのを使うしかない。 そんな怪しげなものは企業じゃ使いにくいわな。
- 157 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 22:26:51.94 ID:BiO0sN0+.net]
- でもプリプロセッサみたいなXXXXXXなもの積んだら元の木阿弥だしなあ
- 158 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 02:43:30.27 ID:XESAGs1Z.net]
- 精度の高いhtodまだ?
- 159 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 09:38:06.20 ID:y8PA+brm.net]
- C言語にはマクロがあるから難しいだろうね。
マクロとインライン関数とじゃ微妙に動作が違うし。 それを再現するのは難しいし、再現したらしたでDの人たちが怒る
- 160 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 11:32:27.28 ID:E16OManC.net]
- 他の言語に比べりゃマシ。
普通はC側からもグルーコードを書かないといけない。
- 161 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 11:41:30.34 ID:kQPdUAS+.net]
- JNIとか死ねるし
- 162 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 11:47:57.98 ID:UmUJTIj0.net]
- ライブラリ側の改造なしで普通にリンクできるってのは大きいなあ
- 163 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 14:18:52.37 ID:y8PA+brm.net]
- でも、CのライブラリはC++からだと何の改造もなく普通に読み込めるし、
殆どのライブラリはC++から使われること「も」想定して書いてあるし。 ライブラリの公式なサポートがあるってのも大きいかと。 Dの宿敵は完全にC++なわけで、ここからシェア奪うの厳しくね? しかも最近のC++はやたら高性能になってて、Dが圧倒的に優位といえるのは、 GCが有ることぐらいか。しかしDのGCは完全じゃないので、実際には開放できる領域を 見逃すことがあるらしい。>>127-129 しかもメモリを使えば使うほど、切迫していればいるほど、誤認の確率が高くなる。 本当にGCが必要な時ほど、GCが上手く動かなくなるという・・・。これはなんかおかしい。 まー一生C++使ってろって言われそうだが。
- 164 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 17:59:43.09 ID:E16OManC.net]
- 京大院卒の元
- 165 名前:日立社員ですらrust,go,nimとやってきたがDは目次で投げ出すほど難しいらしい []
- [ここ壊れてます]
- 166 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 21:05:35.95 ID:/fCEzYcpA]
- 難しくはないだろ…普通に使う分には
GCは今後改善されていく事を期待
- 167 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 21:04:55.27 ID:tlWGpnIJ.net]
- C++やってないのかよ
- 168 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 21:27:54.60 ID:Kyho4V/V.net]
- そこであげられてる言語は比較対象になるのか
- 169 名前:デフォルトの名無しさん mailto:sage [2015/04/13(月) 17:54:24.16 ID:bnhydr1P.net]
- 仕様書であるTDPLを入門書と間違えて買ったんだろうな
- 170 名前:デフォルトの名無しさん mailto:sage [2015/04/13(月) 19:57:56.23 ID:S0M+DdK2.net]
- D言語パーフェクトガイドの時代が来たようだな
- 171 名前:デフォルトの名無しさん mailto:sage [2015/04/13(月) 23:25:29.77 ID:Gjz0iSdUJ]
- TDPLも決して難しい本じゃないだろ
プログラミング未経験者にとってはアレかもしれないけど
- 172 名前:デフォルトの名無しさん mailto:sage [2015/04/14(火) 22:00:35.44 ID:TJwhWYq7.net]
- スマホアプリが作れれば流行るんじゃね?
- 173 名前:デフォルトの名無しさん mailto:sage [2015/04/14(火) 22:05:11.14 ID:NpitylM9.net]
- Visual D使ってる人に質問です。
Visual Dって標準ライブラリの予測変換でないんですか?
- 174 名前:デフォルトの名無しさん mailto:sage [2015/04/14(火) 22:38:44.42 ID:o5X1XXSP.net]
- >>167
入力補完できるよ rainers.github.io/visuald/visuald/Editor.html
- 175 名前:デフォルトの名無しさん mailto:sage [2015/04/14(火) 23:57:41.21 ID:VlJAU5Jf.net]
- どうせ出てほしい時に出なくて
必要ないときに邪魔なポップアップが出るみたいな お粗末なものにしかならないべ 言語設計レベルからそこまで考慮してないと
- 176 名前:デフォルトの名無しさん mailto:sage [2015/04/15(水) 18:59:26.48 ID:V49K0zxq.net]
- C#はforeach使うとGCが増えるらしいけど
Dはどうなの?
- 177 名前:デフォルトの名無しさん mailto:sage [2015/04/15(水) 21:22:05.40 ID:DNCbFPiX.net]
- Dってどこで学んだらいいんだ
dlang.orgしかない?
- 178 名前:デフォルトの名無しさん mailto:sage [2015/04/15(水) 21:33:41.05 ID:P7ZS5djvq]
- TDPL
- 179 名前:デフォルトの名無しさん mailto:sage [2015/04/15(水) 22:20:50.17 ID:kuK1eeQu.net]
- https://gist.github.com/repeatedly/2470712
ここ読んで文法身につけて、 標準ライブラリは公式がそこそこわかりやすいからそれで。 (日本語訳はちょっと古いが、参考には十分なる) んで、わからないことはここか、 最近はtwitterで#dlangのハッシュタグつけて質問するのも流行り。 自分も去年一度質問投げたら、一時間で三人から同じ解答来て震えた。
- 180 名前:デフォルトの名無しさん mailto:sage [2015/04/15(水) 22:50:13.61 ID:H6ZOKNFw.net]
- >>168
ありがとうございました。なんか出てきました。
- 181 名前:デフォルトの名無しさん mailto:sage [2015/04/16(木) 06:03:51.02 ID:3n63vngU.net]
- 以前にC++とねんごろになれるうpあったとか見た気がしたけど、あれは幻覚だったのかこの流れ見ると
- 182 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 08:38:36.34 ID:LOaAnlcG.net]
- namespaceに対応したり、C++側でインスタンス化されたテンプレートがDから使えるようになったんじゃなかったっけ?
C++ヘッダを直接import出来るようにするDコンパイラも開発されてるけど結構実用的ぽい https://github.com/Syniurge/Calypso/blob/master/tests/calypso/libstdc++/vector/vector.d
- 183 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 13:06:38.13 ID:n6u60MAl.net]
- >C++ヘッダを直接import出来るようにするDコンパイラも開発されてるけど結構実用的ぽい
あ、それいいね。てかそれしないと普及しないでしょ。互換性は大事。 COMとかもそもまま使えるようになるんかね。
- 184 名前:デフォルトの名無しさん [2015/04/21(火) 22:23:29.12 ID:k+lIUh1M.net]
- ☆ 日本の核武装は絶対に必須ですわ。☆
www.soumu.go.jp/senkyo/kokumin_touhyou/index.html ☆ 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、改憲の参議院議員が 3分の2以上を
- 185 名前:エえると日本国憲法の改正です。皆様方、必ず投票に自ら足を運んでください。
私たちの日本国憲法を絶対に改正しましょう。☆ [] - [ここ壊れてます]
- 186 名前:デフォルトの名無しさん mailto:sage [2015/04/22(水) 16:58:34.80 ID:w0Yyg9N7.net]
- dsource.org もいよいよ廃止に向かう模様
使ってる人ほとんどいないだろうけど
- 187 名前:デフォルトの名無しさん mailto:sage [2015/04/22(水) 17:06:41.43 ID:QMLocF8n.net]
- ちなみに移住先は?最近D使ってないんでよくわからんけど
- 188 名前:デフォルトの名無しさん mailto:sage [2015/04/22(水) 17:25:07.03 ID:Atokf9a2.net]
- >>2のDUBに登録が最近の流行り
- 189 名前:デフォルトの名無しさん mailto:sage [2015/04/23(木) 15:06:10.81 ID:atwBzKak.net]
- ノイズが減るのは良いこと
- 190 名前:デフォルトの名無しさん mailto:sage [2015/04/23(木) 19:54:37.61 ID:g8/zXSRM.net]
- この言語
親クラスのprivate変数に継承先のクラスがアクセスできるじゃん
- 191 名前:デフォルトの名無しさん mailto:sage [2015/04/23(木) 19:58:37.29 ID:lZQ1F1hI.net]
- 継承先のクラスが同一ファイル内にないか?
同一ファイル内のメンバは常にpublicだぜ
- 192 名前:デフォルトの名無しさん mailto:sage [2015/04/23(木) 20:23:40.71 ID:g8/zXSRM.net]
- まじかよ酷いな
ファイル=モジュールだからファイル分けるの面倒くさい
- 193 名前:デフォルトの名無しさん [2015/04/24(金) 06:25:45.44 ID:6TulMhAx.net]
- 同一ファイル内にあるものは自動的にfriendだと思えばC++より便利だな
- 194 名前:デフォルトの名無しさん mailto:sage [2015/04/26(日) 21:31:40.36 ID:M02Af7kd.net]
- D2はまだ使用が固まってないからとうぶんの間は開発にはD1を使うことになるな
- 195 名前:デフォルトの名無しさん mailto:sage [2015/04/26(日) 22:17:29.71 ID:FiVYM95bN]
- こやつめ、ハハハ
- 196 名前:デフォルトの名無しさん mailto:sage [2015/04/26(日) 23:49:43.65 ID:NpZzAF6y.net]
- 1のことは忘れるんだ……。
2も最近は破壊的変更が少ないし、 どうしても仕様が固まってるものを求めてるなら別の言語のほうがいいよ。 少なくともD1を使っていいことは一つもないと思う。
- 197 名前:デフォルトの名無しさん mailto:sage [2015/04/27(月) 01:41:11.15 ID:nAsvEGea.net]
- じゃあC++使うかな
とは言えない雰囲気
- 198 名前:デフォルトの名無しさん mailto:sage [2015/04/27(月) 03:54:29.19 ID:3o/5kFDH.net]
- D1かC++かならまじでC++使えばいいと思うよ
雰囲気っていうか、まあ確かにC++使うならここで宣言する必要はないと思うけど
- 199 名前:デフォルトの名無しさん mailto:sage [2015/04/27(月) 07:50:54.32 ID:XqA1wgYz.net]
- 意外なことにrustの方が言語とAPI仕様の安定化に積極的っぽい
- 200 名前:デフォルトの名無しさん mailto:sage [2015/04/27(月) 08:51:18.76 ID:ZDDsb7dY.net]
- 明確なゴールもなくフワフワと手を広げるから収束しないんだよ
- 201 名前:デフォルトの名無しさん mailto:sage [2015/04/27(月) 19:40:18.02 ID:u+p+733x.net]
- effectivec++読んだ時点でc++を見限らない奴はセンス無い
- 202 名前:デフォルトの名無しさん mailto:sage [2015/04/27(月) 19:41:43.14 ID:JZyYoAVB.net]
- >>192
それここ1ヶ月くらいのことじゃね? まあでもそういう姿勢を公式に明確にするのはいいことだ
- 203 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 23:13:29.89 ID:DC2IuzKP.net]
- PCがオワコンになって一般人はスマホやアップルウォッチしかコンピューターを持たない時代が来るのに
Dを始めとするPCアプリ専用言語に未来はあるのか
- 204 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 12:43:57.40 ID:ZnsZ9ufL.net]
- >>196
そもそも、一般人はプログラミングしていない。
- 205 名前:デフォルトの名無しさん [2015/05/01(金) 15:43:57.35 ID:VV0Lze55.net]
- サーバーサイドでも使われないとか終わってる
- 206 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 00:09:29.37 ID:i/dUwmAKi]
- dmdのソースにはARMだのandroidだのの文言が見えるが、
どんな感じなのかね
- 207 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 12:05:34.37 ID:frUd71C/.net]
- >>198
Goで泥アプリ開発できるようになったし、PCから移行するにつれいろんな言語が泥とかアフォン とかでも使えるようになる。 という妄想
- 208 名前:デフォルトの名無しさん mailto:sage [2015/05/11(月) 22:49:25.75 ID:umG0fBs5.net]
- Tcpを用いたサーバーアプリケーションを作成しています。
一つのSocketを処理するスレッドをspawnで起動しようと
- 209 名前:オたのですが、
"Aliases to mutable thread-local data not allowed." というエラーが出てしまいます。 Socketをスレッドのコンテキストとして渡す方法はありますか? [] - [ここ壊れてます]
- 210 名前:デフォルトの名無しさん mailto:sage [2015/05/19(火) 19:36:36.05 ID:nbiNTEdK.net]
- sharedクラスに突っ込むとかかな
- 211 名前:デフォルトの名無しさん mailto:sage [2015/05/20(水) 14:35:43.34 ID:RjQMrwaX.net]
- enumのメンバの中からランダムに1つ取り出すにはどう書いたらいいですか?
- 212 名前:デフォルトの名無しさん mailto:sage [2015/05/20(水) 17:11:00.71 ID:VhPE5aVV.net]
- import std.stdio, std.traits, std.random;
enum E { Hard, Normal, Easy, } auto lv = [ EnumMembers!E ]; lv[ uniform(0, 3) ].writeln();
- 213 名前:デフォルトの名無しさん mailto:sage [2015/05/20(水) 17:35:41.74 ID:RjQMrwaX.net]
- >>204
ありがとうございます。 std.traitsにenumのメンバの配列を作る機能があったんですね。
- 214 名前:デフォルトの名無しさん mailto:sage [2015/05/20(水) 19:21:10.83 ID:VhPE5aVV.net]
- あ、配列なんだからuniform(0, $)でよかった…。
タプルの配列化?みたいな 他にも関数の引数リストとか、構造体のメンバ変数を タプルでとれたり、std.traitsは結構楽しい
- 215 名前:デフォルトの名無しさん mailto:sage [2015/05/23(土) 09:46:23.34 ID:LbQhEyX4.net]
- メンバにUDAを付加するだけで
文字列化やシリアライズのメソッドが自動or暗黙生成されるような いい感じの小技はないかしら
- 216 名前:デフォルトの名無しさん mailto:sage [2015/05/23(土) 20:05:33.06 ID:T/VMnfch.net]
- static ifと文字列mixinを駆使すればなんでもできそう
コードはくっそ汚くなるけど…というかいくらなんでも汚すぎるので俺がなにか勘違いしてる class Cls { @getset(true, true) private string prop; mixin Prop!(__traits(allMembers, typeof(this))); } struct getset { bool get, set; this (bool get, bool set) { this.get = get; this.set = set; } } mixin template Prop(Members...) { static if (Members.length) { mixin("alias Alias = " ~ Members[0] ~ ";"); static if (is(typeof(__traits(getAttributes, Alias)[0])==getset)) { static if (__traits(getAttributes, Alias)[0].get) { mixin("auto get_" ~ Members[0] ~ "() { return " ~ Members[0] ~ "; }"); } static if (__traits(getAttributes, Alias)[0].set) { mixin("void set_" ~ Members[0] ~ "(" ~ typeof(Alias).stringof ~ " value) { " ~ Members[0] ~ " = value; }"); } } mixin Prop!(Members[1..$]); } } void main() { import std.stdio; auto cls = new Cls; cls.set_prop("getset"); writeln(cls.get_prop()); // write "getset" }
- 217 名前:デフォルトの名無しさん mailto:sage [2015/05/24(日) 19:07:17.52 ID:TlBS03PH.net]
- これいいなあ
それにしてもstatic foreachが欲しい…
- 218 名前:デフォルトの名無しさん mailto:sage [2015/05/26(火) 22:32:12.74 ID:KhQ392/2s]
- じゃあstatic whileも
そしてstatic goto…
- 219 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 18:35:51.38 ID:GIDis6QW.net]
- >>196
そんなのは日本だけだぞ 海外ではPCとモバイルを使い分けるのが普通
- 220 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/06/17(水) 19:52:38.87 ID:/OO8ry8l.net]
- Dの簡単インストーラー作るぜ。アイデア募集。
- 221 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 14:34:15.48 ID:/IuhOBPcf]
- >>212
今でも解凍して path通すぐらいじゃん
- 222 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/03(金) 16:37:05.52 ID:Cj/+Kw22.net]
- DmInst ver.0.0を公開しました。
コンパイラーのDMCとDMDを簡単にインストールできるプログラムです。 katahiromz.web.fc2.com/dminst/
- 223 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 16:45:04.27 ID:PTQIZZxq.net]
- 苛寝
- 224 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 15:20:28.78 ID:JqZMsJ+9i]
- DUBはあった方がいいと思う。あと、GDCとLDCのインストールもするようにしてみては。
- 225 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 00:26:47.91 ID:vgLfGCMi.net]
- std.experimental.allocator の vote 始まった
https://github.com/andralex/phobos/tree/allocator/std/experimental/allocator erdani.com/d/phobos-prerelease/std_experimental_allocator.html
- 226 名前:デフォルトの名無しさん [2015/08/07(金) 01:19:25.71 ID:AOl5d/Q7.net]
- vote
- 227 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 09:22:39.47 ID:JJHEPwAB.net]
- 2.068
- 228 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 21:22:49.65 ID:/rELv5XJ.net]
- AliasSeq を Alias Equal と読み間違ってしまうマン
- 229 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 23:59:23.96 ID:HcRp0udTh]
- タプルシンタックス…
- 230 名前:デフォルトの名無しさん mailto:sage [2015/08/20(木) 19:16:20.38 ID:6X6++Eio.net]
- お前らってeclipseのDDT使ってるの?
- 231 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 04:06:34.44 ID:+P5YetMW.net]
- CTFE時に連想配列の値が上書きされてしまう。
dpaste.dzfl.pl/4daf8db6ce08
- 232 名前:212 mailto:sage [2015/09/13(日) 01:16:43.63 ID:6EXYsBmd.net]
- >>223 がgithub版でもおきるかなー?と思ったんだけど、github版dmdをコンパイル中にエラーが出た。
内容は、「ソースに\r\nが含まれますよ」というもの。 出してるのは、dmd -run src/checkwhitespace.d の部分。 このツールは 1. \r\n がソースに含まれている場合。 2. インデントに\tを使っている場合。 3. 行末に不要な空白文字がある場合。 にエラーを出すようなんだけど、3はともかく、これで行くことに決まったのかな。 smart-tab派なんだけどなー。 あ、github版でも212は再現しました。
- 233 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 08:11:30.88 ID:zHbMvpj8.net]
- dmdがDベースになるね
- 234 名前:デフォルトの名無しさん [2015/09/23(水) 01:15:09.12 ID:c39jTuOR.net]
- おまいらこれはなんでなんだぜ
dpaste.dzfl.pl/7fa1a12a8c4a 1. enum をクラスインスタンスで初期化できない→わかる。構造体でラップすると通る→? 2. 1. において、ラップされたクラスが mutable。
- 235 名前:215 mailto:sage [2015/09/24(木) 17:04:49.35 ID:Q3uW0SwS.net]
- >>226 自己レスなんだけど、
1. https://issues.dlang.org/show_bug.cgi?id=11697 2. https://issues.dlang.org/show_bug.cgi?id=12385 なんだって。
- 236 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 08:34:31.58 ID:58nZ62zg.net]
- This Week in D (英語)
arsdnet.net/this-week-in-d/ 年初から続いてて筆者はDの入門書出版したりしてる
- 237 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 09:14:53.57 ID:2BMWd/g5.net]
- 2.068.2 出てた
ちなみに Win32-COFF が隠しオプション(-m32mscoff)で出来るようになってるので OMF/optlink がイケてないと思っていた諸兄は試してみるがよいよいよい
- 238 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 21:28:45.14 ID:S1ELEwjTE]
- 64bitも隠しオプションだったよね
「コンパイラのソースくらい当然読んでるよね?」ってことなんだろうか…
- 239 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 20:25:42.92 ID:fx9NWY8o.net]
- int arr[x][y][z];
これと同じメモリレイアウトでヒープに確保するにはどうすればいいですか?
- 240 名前:219 mailto:sage [2015/10/04(日) 20:56:03.94 ID:fx9NWY8o.net]
- new int[x*y*z]でよかった。
問題なのはint[]のメモリへのアクセスをint[x][y][z]と同じようにする方法だった。
- 241 名前:219 mailto:sage [2015/10/04(日) 20:59:30.10 ID:fx9NWY8o.net]
- 自己解決。
[0][0][0],[0][0][1]...[0][1][0],[0][1][1]...の順番で並んでるだけだった。
- 242 名前:デフォルトの名無しさん [2015/10/06(火) 01:18:13.90 ID:4WYMUnp4.net]
- くっそ!
↓Manifest ConstantsのenumとAAのからみがおかしい。 dpaste.dzfl.pl/36ab529d6fc5c ↓CTFEで変数を修飾する方のscope class使うと abnormal termination dpaste.dzfl.pl/8ad7e24e5d05
- 243 名前:デフォルトの名無しさん [2015/10/09(金) 21:58:55.85 ID:So4fPMkx.net]
- const class A { int a; this(int v) { a = v; } }
このクラスAを値に持つ連想配列を作りたいんだけど、 const(A)[int] hoge = [1: new const A(1)]; hoge[3] = new const A(3); // cannot modify const expression hoge[3] みたいに、初期化はできても代入ができない。 A[int] hoge = cast(A[int])[1: new const A(1), 2: new const A(2)]; hoge[3] = cast(A)new const A(3); てなふうにcastしたら回避できたけど、なんか美しくない。 typeof(new const A(1)).stringof == "const(A)" なのがおかしい気がするんだが。
- 244 名前:223 mailto:sage [2015/10/09(金) 23:28:50.19 ID:So4fPMkx.net]
- 書き込んでから思い出したけど、Rebindableとかできて結構経つしあきらめるしかない気がしてきた。
>>229 optlink死んでまうん?
- 245 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 00:27:09.81 ID:MYHuAGIQ.net]
- const classとかscope classとかは今もまともに使おうと思えないね
普通のclass内でメンバをconstにするとかじゃないとまともに動く気しない
- 246 名前:デフォルトの名無しさん [2015/10/15(木) 18:54:50.42 ID:pJRyZOgY.net]
- nullではなく、空の連想配列で初期化するにはどうすればよいですか?
- 247 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 08:36:04.34 ID:CAVKRc42.net]
- 空の配列 == null なので無理
ただし空文字列 "" は例外 落とし穴になりがちなので注意
- 248 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 13:11:04.24 ID:TDfNRPC3.net]
- ちょっと良くわかりませんが、D言語は空の配列すら作れないんですか?
不便ですね
- 249 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 17:46:08.84 ID:ZZ3JoxKg.net]
- nullでない空ってなに
- 250 名前:デフォルトの名無しさん [2015/10/16(金) 17:54:55.90 ID:MCgyDKhx.net]
- a = {};
こんなのを期待してるのかな
- 251 名前:226 [2015/10/16(金) 18:32:37.08 ID:+5uWvhRc.net]
- >>239-242 レスありがとう。やりたかったのはこういうことです。
string[string] buf; auto buf2 = buf; buf2["hello"] = "world"; buf.writeln; // > [] これと↓ string[string] buf = ["": ""]; buf.remove(""); auto buf2 = buf; buf2["hello"] = "world"; buf.writeln; // > ["hello":"world"] では結果が違うわけだけど、後半の上2行を初期化1行で書きたいな。 という話でした。
- 252 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 19:36:08.03 ID:TDfNRPC3.net]
- 結局どういうことなんですか?
Dでは空の配列を作れないんですか? 必ず何か入っていなければダメなんですか? int[] a; って書けば空の配列になるんじゃないんですか?
|

|