[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 02/28 21:19 / Filesize : 43 KB / Number-of Response : 243
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

D言語 Part31



1 名前:Win64をやりたい場合はMSVCwo [2013/01/21(月) 12:39:54.40 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。

■本家
dlang.org/ - 公式(英語)
www.kmonos.net/alang/d/ - 公式の和訳
d.puremagic.com/issues/ - D言語バグ報告
https://github.com/D-Programming-Language - D言語開発リポジトリ

■Wiki
dusers.dip.jp/ - D言語友の会(日本語フォーラムあり)
prowiki.org/wiki4d/ - Wiki4D(公認Wiki)

■前スレ
D言語 Part30
toro.2ch.net/test/read.cgi/tech/1343660743/

■過去スレ、関連スレ
makimo.to:8000/cgi-bin/search/search.cgi?q=D%8C%BE%8C%EA&sf=2&all=on&view=table&shw=5000

74 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 06:15:55.98 ]
D言語って、
int[100] a, b;
a[] += b[];
で勝手にSIMD演算とかいうのやってくれるんですか?

75 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 07:13:31.71 ]
>>74
www.kmonos.net/alang/d/simd.html
頑張ってくれる可能性はあるけどわりと限界もある、みたいな感じ

76 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 11:06:58.13 ]
ターゲット環境を明示してなければ勝手にそういうコードを吐くわけ無い
環境を特定するなら素直に core.simdで定義されている配列もどきを使うべし

77 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 14:26:03.01 ]
classのコンストラクタで定義した変数をメンバーにしちゃえる的な機能がほしいなぁ
多分害悪の元なんだろうけど
class hoge
{
this()
{
int a = 0 as public;
}
}
見たいにしたらhoge.aが使えるみたいなね!
thisが一個のとき限定でいいからさぁ・・・

78 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 19:16:36.49 ]
>>77
どんな意図の機能?
頑張れば既存の機能でやりたいことが解決できるかも

79 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 19:44:42.31 ]
黒魔術ツールopDispatchがあるからなあ
ただコンストラクタで書くならメンバでいいだろという気がするが

80 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 19:52:33.02 ]
現在のスコープから参照できるすべてのシンボルを列挙する__traitsが欲しい
あとそのシンボルが変数なのかモジュールなのかクラスなのか構造体なのか判別するのもついでに欲しい

81 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 19:59:59.78 ]
C++の特殊化でなら省力のために欲しいかな
mixin無ぇーし

82 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 20:02:09.25 ]
顧客が本当に必要だったもの:賢いIDE



83 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 20:17:53.73 ]
IDEとか重いだけだよ!

84 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 21:31:09.49 ]
DDTがeclipse4.2に入らないのが痛い

85 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 23:29:27.58 ]
軽いIDEには需要があるのか

86 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 23:48:53.99 ]
Sublime Textがそんな感じじゃない?
プロジェクト機能あるしD対応してるし

87 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 04:08:55.24 ]
言語仕様の追加まで対応出来る賢いIDEをだな

88 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 12:34:31.13 ]
IDEの触手の一端がウォルたんの脳みそに取り付いているだと…!?

89 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 19:19:11.01 ]
IDE(CUI)

90 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 19:25:51.70 ]
Integrated Drive Electronics
Integrated Development Environment
エンビロンメント?

91 名前:片山博文MZパンク ◆0lBZNi.Q7evd [2013/01/29(火) 23:58:06.70 ]
>>90
エンヴァイロンメント。
電子辞書を買いましょうね。

92 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 00:21:20.93 ]
マクロまだー?



93 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 00:21:34.89 ]
カタカナ表記につっかかるのはナンセンスだと思うけど

94 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 00:34:25.28 ]
カタカナ表記としてもエンヴァイロンメント、エンバイロンメント以外に存在しない

95 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 01:31:06.21 ]
ディーゲンゴも大五郎も大して変わらんしな

96 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 04:13:06.10 ]
インバイロンメントさんが泣いてる

97 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 04:32:45.97 ]
わーにんぐ・わーにんぐ

98 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 12:23:27.28 ]
エンベロープメント
モーリメメント
ヤックデカルチュアメント

99 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 19:39:48.11 ]
DPasteのコンパイラが止まってるじゃないかクソッタレー!


import std.stdio;
void main() {

// ポインタの配列
int i = 42;
int*[1] src = [&i];

// スライスの代入
int*[1] dest = src[];

// srcとdestの内容が違う! (2.061以降)
writeln(src, " == ", dest);

}

これが2.061の破壊的変更だったら欣喜雀躍するんだが…

100 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 20:08:25.15 ]
>>99
githubの最新では直っているっぽい

101 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 20:17:56.79 ]
>>100
おおっと、さすがにこういうのはすぐ発見されるんですね
Thx

102 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 01:43:11.46 ]
override attribute is deprecated
ってどうすりゃいいの?



103 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 01:46:40.11 ]
ああ、withoutか

104 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 14:35:15.40 ]
void f(void delegate(int) dg) {}
f((i) { ... });
で推論できるなら
class C { this(int i){} }
C obj;
obj = new(10);
とかもできそうだよね

105 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 18:53:52.42 ]
構造体ならそれでいいかも知れんけど

それでもやっぱりきもい

106 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 21:20:11.34 ]
>>Error 42: Symbol Undefined _D6object9Exception6__ctorMFNaNbNfAyaAyakC6object9ThrowableZC9Exception (pure nothrow @safe Exception object.Exception.__ctor(immutable(char)[], immutable(char)[], uint, object.Throwable))

⇒pure nothrow @safe Exception object.Exception.__ctor(immutable(char)[], immutable(char)[], uint, object.Throwable)

なんですかこれ・・・

あるし

class Exception : Throwable
{
@safe pure nothrow this(string msg, string file = __FILE__, size_t line = __LINE__, Throwable next = null)
{
super(msg, file, line, next);
}

@safe pure nothrow this(string msg, Throwable next, string file = __FILE__, size_t line = __LINE__)
{
super(msg, file, line, next);
}
}

107 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 21:44:53.91 ]
2.061 に変えて自前のライブラリの再構築を忘れてたときに
そういうエラーを見た気がする

108 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 22:01:57.58 ]
>>107
VisualD使ってるんだけどそれ見てもしかしてと思ってエラーログ確認したら
使用するDMDが2.060のDMD環境指してた・・・

VisualStudioShell起動中に2.060と2.061をディレクトリリネームで切り替えた覚えがあるけど
勝手に設定まで追従しやがったのか・・・

109 名前:デフォルトの名無しさん mailto:sage [2013/02/01(金) 12:39:50.73 ]
そういえば昔ErrorとExceptionがあったような気がしたんだけど、なんで片方なくなってるの?

110 名前:デフォルトの名無しさん mailto:sage [2013/02/01(金) 13:03:51.57 ]
なくなってないよ
ぜんぜんちがうよ

111 名前:デフォルトの名無しさん mailto:sage [2013/02/01(金) 14:07:22.40 ]
あれ?ほんとだ・・
公式のobjectのドキュメントに載ってなかったから無くなったのかと

112 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 09:11:57.85 ]
タプルリテラルってないの?



113 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 09:27:53.05 ]
ない

114 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 11:58:43.31 ]
入るとしたらどんな構文になるんだろうな
Pythonみたいにしたらえらいことになりそうだけど

115 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 19:04:01.41 ]
DDTでライブラリパスの追加とかlibファイルの追加ってどこでやるん?

116 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 21:09:34.98 ]
タプル構文か・・・fortranの配列を採用しようじゃないか (/ a, b /)

117 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 21:19:05.80 ]
(|a, b|)
(>a, b<)
(*a, b*)
(a, b)
(!a, b!)
{|a, b|}

118 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 21:44:37.48 ]
ここでついに<a, b>の出番が

119 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 21:46:42.75 ]
そういえばしばらく前の話だけど、タプルリテラルを
(a, b)みたいに書きたいからコンマ演算子廃止しようぜ、
という話がMLに出てたな。

120 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 21:58:14.18 ]
コンマ演算子って実際、使われてるの? Dに限らずCとかでも

121 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 21:59:28.92 ]
ラムダ式と組み合わせて使います

122 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 22:01:33.27 ]
マクロで時々見る。#define f(x) (sideeffect(x), x + 1) とか。書いたやつ死ねとしか思わんが



123 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 22:05:53.34 ]
for文の括弧内の各部に文を複数突っ込むときに使う気がする

124 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 22:10:38.72 ]
for (i = 0, j = 0; i < x && j < y; i++, j++)
みたいな

125 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 22:10:59.88 ]
forで複数突っ込みたいのは最後のとこだけだろうから、
++i, ++jの値がjではなく(i, j)のタプルになっても影響ないな

126 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 22:23:24.90 ]
forの最後でたまに使うから無くなると困る

他にも
while ((x = foo()) == y) { } を
while (x = foo(), x == y) { } と書く事もなくもない

127 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 22:26:35.51 ]
(x = foo(), x == y)の値がx == yではなく、(x, x == y)のタプルになって空ではないってことで無限ループしても
まあ影響ないな

128 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 22:57:20.76 ]
なんか人いるみたいだし、ちょっとスレに張り付いてみる。
いまのDでこれが気になる、とかある?

129 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 23:11:33.70 ]
構造体がテンプレートなら、内部の普通のメンバ関数も@safe pure nothrowを推論して欲しい。
void foo()(){...}ならできるけど

130 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 23:18:34.88 ]
>>129
あー、Jonathanが欲しいといってたやつか。std.rangeとかでいろいろ苦労しているから
実験パッチは作って試してみる予定。ただ、Fwdref問題がいっぱい出てくるかもしれないから
対応するかは半々だなあ。

131 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 23:20:11.83 ]
ちなみに、現状は「テンプレートの直下の関数」のみ推論が行われる。
void foo()() { ... } は
template foo() { void foo() { ... } }
の構文糖なので推論が効く、という仕組みになっている。

132 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 23:22:47.25 ]
個人的に連想配列の使い勝手が悪い
~で連結したいしmapとかで回したい



133 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 23:30:05.36 ]
>>132
~での連結はコンパイラ対応の範疇だな。
2つの結合したい連想配列に重複するキーがあるときどういう動作をすべきか、
という所が決まらないと駄目だと思う。

mapでまわすのはPhobosの範疇。しばらく前にそれっぽい話題がMLで出てた気が
するけど、特に話は進まずに終わったと思う…
そういう挙動を実現すること自体に問題はなさそうなので、enhanceをbugzillaに
投稿したら興味ある人が対応してくれるんじゃないかな。

134 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 23:38:09.82 ]
自分は最近コンパイラにかかりっきりなので、正直Phobosまで手を入れる余裕が無い。
他の人のPullReqをレビューするぐらいが精一杯です。

135 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 00:07:51.37 ]
rvalue refってどうなってるの?

136 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 00:23:47.64 ]
>>135
まだセマンティクスがはっきりしていない。現在テンプレート関数で使える
auto refは、厳密には右辺値参照とは違うものなので、これをそのまま
非テンプレート関数にもってくることは出来ない(構文的にも意味論的にも)

Andreiが d.puremagic.com/issues/show_bug.cgi?id=9238
Dにおける右辺値をrefで束縛した場合の挙動についてある程度書いてくれている。
興味深いのは、DはC++と違って参照型の変数が存在せず、関数の仮引数と戻り値
にのみrefが出現するため、右辺値を関数引数のrefで束縛しても「本質的には」
問題ない、という所かな。

とはいえ、実際には@systemな関数の内部で、ref引数からアドレスを取って
グローバル変数に束縛するなどのエスケープ問題が絡んでくるので、セマンティクスを
もっと詰めないと実装できない、というのが俺個人の現状認識。

結論:近いうちに状況が動く可能性は低い

137 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 00:30:46.53 ]
そろそろ抜けます。このスレは時々覗いているので
面白そうな質問あったらそれなりに答えるつもりです。では。

138 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 00:49:20.05 ]


139 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 01:47:49.82 ]
連想配列にclear()なりremoveAll()なりが無いのはもはや意味不明なレベル

140 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 01:59:45.45 ]
いや clear あるっしょ・・・あれ、どこに書いてあったっけ?

141 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 02:15:36.29 ]
dupも欲しいな

142 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 02:23:16.25 ]
>>140
object.destroyのaliasでclearがあるけどこれ呼ばれてるんじゃね?

>>141
dup使えたぞ
ドキュメント無さそうだがww



143 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 02:39:50.10 ]
マジダclearできた

替わりにこうしてた・・・
typeof(h) tmp;
tmp.swap(h);

で、h.dup.swap(h);がコンパイル通らなくて泣いてた

144 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 02:41:09.83 ]
あれ?よく考えたらh.dup.swap(h);意味ないじゃん。何やってんだ俺

145 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 11:40:10.23 ]
>>140-142
い、一体いつから…

ヒャアやっぱDはたまんねぇな!

146 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 11:49:37.17 ]
dupはあるんだった
何かと勘違いしたわ

147 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 16:28:43.01 ]
ポトペタなRAD今作ってるからGUI厨はちょっと待ってろ

148 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 16:38:16.81 ]
♪〜(・ε・。)ヒューー

boost licで頼む

149 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 16:40:58.13 ]
ポトペタとかは比較的どうでもいいんだ
まともに保守されてるだけでもぶっちぎりに優れたライブラリになれる

150 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 18:32:28.27 ]
逆に考えるんだ
唯一まともに保守されているから
公式のライブラリとして存在できていると考えるんだ

151 名前:デフォルトの名無しさん mailto:sage [2013/02/05(火) 13:23:14.36 ]
UDAってCTFEした値も取ってこれるのか
無茶しやがって

152 名前:デフォルトの名無しさん mailto:sage [2013/02/05(火) 13:36:21.90 ]
シンボルが欲しくなるな



153 名前:デフォルトの名無しさん mailto:sage [2013/02/05(火) 23:48:43.40 ]
templateは要素がひとつで同名って条件でtemplate名称を省略できるって
公式のどこかで見た記憶があるんだけど下の例でクラスのAをtemplate名称なしで
使えちゃうのは合法?

template A(T){
 class A{}
 T s; ←A.Aとしてclassを参照するために邪魔になると思われるもの
}


auto x = new A!(int).A();
ではなく
auto x = new A!(int)();
として使用できてしまう。

154 名前:前々スレ(Part29)より mailto:sage [2013/02/05(火) 23:57:39.76 ]
143 :営利利用に関するLR審議中@詳細は自治スレへ : 2012/04/08(日) 17:55:55.18
>>140-141
メンバ一つに限るっていう条件は 2.058 で外れたとかどこかで見たような

Eponymous Template っていうらしい

155 名前:デフォルトの名無しさん mailto:sage [2013/02/06(水) 00:06:06.75 ]
Change Log見てもそれっぽいこと書いてないから怖いな・・
ありがとん

156 名前:デフォルトの名無しさん [2013/02/08(金) 01:45:26.22 ]
Templateパラメータで渡された型のクラスインスタンスをalias thisする方法あります?

struct S(T){
T t;
alias t this;
}

T型が同じファイルに定義されている場合はコンパイル通るけど
別ファイルの場合Tのメンバを呼ぶコードがundefined identifierとなりました

157 名前:デフォルトの名無しさん mailto:sage [2013/02/08(金) 02:22:51.53 ]
Dで作ったDLLをFreeLibraryするとホスト側が止まる(というか処理が戻ってこない)んですけど・・・

158 名前:デフォルトの名無しさん mailto:sage [2013/02/08(金) 10:53:08.11 ]
>>156
通ると思うけど…
リンク漏れの Symbol Undefined じゃなくて?

159 名前:デフォルトの名無しさん mailto:sage [2013/02/08(金) 18:30:45.33 ]
>>157
ソース無いからどうしようもないけど
静的呼び出ししたらどうなるよ?

160 名前:デフォルトの名無しさん mailto:sage [2013/02/08(金) 19:34:02.45 ]
>>159
今やってみました。静的リンクだと問題なく呼び出せました。
目的は実行時に激しくDLLのロード/アンロードをすることなのでLoadLibrary/FreeLibraryが必要だと思ってます。
DLL側、使用側のソースです→dpaste.dzfl.pl/b47c098b
試しにDMDで作ったものでない(たとえば、SDLの)DLLを読み込ませてみましたが、そっちでは問題なくLoad/Freeできました

なんかDLLの作り方間違えてるのかな・・

161 名前:デフォルトの名無しさん mailto:sage [2013/02/08(金) 21:44:06.14 ]
>>160
横レス
なぜか最後のwriteln の中で死んでるっぽい
# デバッガが使えればみんな悲しまずに済むのに・・・!

試しにメッセージボックスに変えてみたらイケた
import core.sys.windows.windows;
MessageBoxA(null, "4 end".ptr, "message".ptr, 0);

162 名前:デフォルトの名無しさん mailto:sage [2013/02/08(金) 22:15:23.76 ]
core.runtimeのloadLibrary/unloadlibraryを呼んだらどうなる?
なんかGC関係の追加処理してそうだけど



163 名前:デフォルトの名無しさん [2013/02/08(金) 22:22:33.15 ]
呼び出し規約

164 名前:デフォルトの名無しさん mailto:sage [2013/02/08(金) 22:31:37.13 ]
>>163 よく読め
>>160はDLL内の関数を呼んではいないぞ

165 名前:デフォルトの名無しさん [2013/02/08(金) 22:40:40.32 ]
>>164
落ちる場所のアセンブリよく読め
スタック巻き戻してretするとこで落ちてる
DLL内の関数の呼び出し規約とは言ってない

166 名前:160 mailto:sage [2013/02/08(金) 23:27:18.56 ]
呼び出し規約と聞いてよくわからないままいろいろ試しました。
alias extern(D) void* function(in char*) LoadLibrary_t;
alias extern(D) uint function(void*) FreeLibrary_t;
void main() {
  writeln("1 load");
  auto p = (cast(LoadLibrary_t)&LoadLibraryA)("plugin.dll");
  writeln("2 ", (p is null) ? "error" : "ok");
  writeln("3 free");
  (cast(FreeLibrary_t)&FreeLibrary)(p);
  writeln("4 end");
}
なんかこんな利用側コードで結局エラーが出なくなりました。
なんでDの呼び出し規約で正しい動きをするのか
まったくわけわかんないんですがこれでいいんでしょうか・・・

167 名前:160 mailto:sage [2013/02/08(金) 23:38:46.24 ]
動いたように見えただけでなんも動いてなかった・・・適当なこと書いてごめんなさい

168 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 00:09:10.44 ]
d.puremagic.com/issues/show_bug.cgi?id=1550
D DLLs close standard input/output streams when unloading

169 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 00:30:31.25 ]
2007-10-07

(´・ω・`)

170 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 00:33:55.29 ]
マジか。つまりDMDのDLL作成機能に実用性なし!
通りでD言語で作られたライブラリが一切DLL化されないわけだぜ

171 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 00:47:09.49 ]
なあ、手元で>>160を動かしたら、何の問題もなく動いたんだが……

172 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 00:47:13.47 ]
いや



173 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 00:57:20.66 ]
マジマジ。ちゃんと全部出る。一行も変更してない。

1 load
2 ok
3 free
4 end

174 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 01:10:41.83 ]
kankyouwo

175 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 01:11:38.05 ]
xp

176 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 01:18:43.24 ]
7 dame

177 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 08:12:52.75 ]
mamamajika

178 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 16:31:15.36 ]
>>156のわかった
alias thisするメンバがprivateだとundefined identifierになるぽい
これって動作としては正しい?
privateにしないと外からalias this対象がメンバとして触れちゃうから問題な気が・・

ideone.com/kVVl02

179 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 17:03:54.30 ]
>>178
逆に private な alias this はどんな動作になるべきだと考えてるの?

180 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 17:28:02.48 ]
>>178
エスパーだが、こういうことがしたいのではないか
struct S
{
private:
T x;
public:
@property T getX() { return x; }
alias getX this;
}

181 名前:デフォルトの名無しさん mailto:sage [2013/02/09(土) 17:44:02.76 ]
>>180
YES!

182 名前:デフォルトの名無しさん mailto:sage [2013/02/11(月) 22:29:44.30 ]
あれ、clear って deprecated になってるじゃん
destroy の方が新しいのか
逆だと思ってたわ



183 名前:デフォルトの名無しさん mailto:sage [2013/02/11(月) 23:08:46.70 ]
デデデデストローイ

184 名前:デフォルトの名無しさん mailto:sage [2013/02/11(月) 23:22:19.46 ]
これって破壊的変更なんですかね

185 名前:デフォルトの名無しさん mailto:sage [2013/02/12(火) 13:42:22.61 ]
>>171
もしかしてDMD以外のコンパイラを使ってないか?

186 名前:デフォルトの名無しさん mailto:sage [2013/02/12(火) 14:05:39.37 ]
>>185
俺もxpでdmdだが問題出ない
load〜freeを100回ループさせても正常

187 名前:デフォルトの名無しさん mailto:sage [2013/02/12(火) 14:22:30.57 ]
未だに修正されない理由はこれか!

188 名前:デフォルトの名無しさん mailto:sage [2013/02/12(火) 14:39:03.09 ]
>>168にある回避策を試すといいかも
副作用出るかは知らないが

189 名前:デフォルトの名無しさん mailto:sage [2013/02/13(水) 19:38:22.65 ]
確かに Win7/64 だと >>168に引っかかってるぽいけど
同じバイナリが WinXP/32 だと普通に動くな

190 名前:デフォルトの名無しさん mailto:sage [2013/02/15(金) 02:52:24.19 ]
同一の領域を指すレンジの距離ってどうにか簡単に得られませんか?

191 名前:デフォルトの名無しさん mailto:sage [2013/02/15(金) 20:19:41.44 ]
1.まず説明する能力を鍛えます

192 名前:デフォルトの名無しさん mailto:sage [2013/02/15(金) 20:25:52.02 ]
auto range1 = [0, 1, 2, 3];
auto range2 = range1.find(2);
assert(distance(range1, range2) == 2);
のdistanceみたいな関数ないですか?



193 名前:デフォルトの名無しさん mailto:sage [2013/02/15(金) 20:53:18.04 ]
import std.algorithm;
range1.countUntil(range2);

194 名前:デフォルトの名無しさん mailto:sage [2013/02/15(金) 20:56:53.49 ]
間違えた
auto range1 = [0, 1, 2, 3];
auto range2 = range1.find(2);
auto range3 = range1.find(3);
assert(distance(range2, range3) == 1);
こっちのほうです。

195 名前:デフォルトの名無しさん mailto:sage [2013/02/15(金) 21:01:53.65 ]
indexOfで場所を取得して差の絶対値を取れば?

196 名前:デフォルトの名無しさん mailto:sage [2013/02/16(土) 08:23:22.80 ]
ややこしい型名のメンバーをautoで書きたい(;;.;;)

197 名前:デフォルトの名無しさん mailto:sage [2013/02/16(土) 10:42:54.48 ]
つ (T)

198 名前:デフォルトの名無しさん mailto:sage [2013/02/16(土) 11:59:49.24 ]
つalias

199 名前:デフォルトの名無しさん mailto:sage [2013/02/16(土) 18:11:00.11 ]
optlink のソースが公開されてるっぽい
アセンブリ 70% とか書いてあるのを見て俺はおまいらに託すことに決めたぜ
https://github.com/DigitalMars/optlink

200 名前:デフォルトの名無しさん mailto:sage [2013/02/17(日) 20:46:00.37 ]
たまに実行時定数がほしい

201 名前:デフォルトの名無しさん mailto:sage [2013/02/18(月) 12:30:12.77 ]
github ソースから最新を取ってきたら
alias INT = int; の構文がさっそく死んだ…?

202 名前:デフォルトの名無しさん mailto:sage [2013/02/18(月) 14:29:36.52 ]
wiki.dlang.org
公式wikiがいい感じに作られている
次スレのテンプレに入れておこう



203 名前:デフォルトの名無しさん mailto:sage [2013/02/18(月) 18:15:17.15 ]
2.062

204 名前:デフォルトの名無しさん mailto:sage [2013/02/18(月) 18:26:51.04 ]
>>201
2.062 では消されていないようだ
てかgithubのブランチが分かれてよくわからなくなってるんだが

205 名前:デフォルトの名無しさん mailto:sage [2013/02/18(月) 20:35:50.72 ]
The D Programming Language Conference 2013
dconf.org/

206 名前:デフォルトの名無しさん mailto:sage [2013/02/18(月) 22:38:15.93 ]
>>204
masterが最新だと思っていたら 2.062 よりはるかに古かったぜ…

207 名前:デフォルトの名無しさん mailto:sage [2013/02/18(月) 22:49:24.28 ]
gitつかいにくw

208 名前:デフォルトの名無しさん mailto:sage [2013/02/18(月) 23:29:35.25 ]
opAssignが使えなくなった…
代替法あるん?

class C{
C opAssign(C c){
return this;
}
}
void main(){
C c = new C;
C d;
d = c;
}

Error: class temp.C identity assignment operator overload is illegal

209 名前:デフォルトの名無しさん mailto:sage [2013/02/18(月) 23:52:55.23 ]
同じ型のopAssignはもともと使えんぞ

210 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 00:07:59.38 ]
まじっか
今までコンパイル通ってたから気付かなかった
じゃあみんなディープコピーしたい場合どうしてるん

211 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 00:26:29.64 ]
ポリモが不要なら struct
必要なら mixinとか alias thisで誤魔化す

212 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 00:33:26.34 ]
ウソです
ほんとは cloneとかdeepCopy とかいう関数を地道に呼んでます



213 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 01:21:16.89 ]
そ、そう…がんばる

214 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 19:40:03.01 ]
関数の引数の型で「.lengthが定義されている配列であればなんでも」という記法ってありましたっけ

215 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 21:24:53.37 ]
static if (is(typeof(T.init.length)))
とかそういうこと?

216 名前:デフォルトの名無しさん mailto:sage [2013/02/20(水) 00:16:31.82 ]
>>208
classは参照型のセマンティクスを持っているので、自身と同じ型を取るopAssignは定義できない。
一方structは値型のセマンティクスなので、自身と同じ型を取るopAssignでも定義可能。

217 名前:デフォルトの名無しさん mailto:sage [2013/02/20(水) 00:22:32.50 ]
>>153
>templateは要素がひとつで同名って条件でtemplate名称を省略できるって
>公式のどこかで見た記憶があるんだけど下の例でクラスのAをtemplate名称なしで
>使えちゃうのは合法?
>
>template A(T){
> class A{}
> T s; ←A.Aとしてclassを参照するために邪魔になると思われるもの
>}

この用法は合法(TDPLに上の様な場合「メンバsはテンプレートAの外側からは
アクセスできなくなる」と書かれている)。またstd.traitsのテンプレートの多くは
この仕組みを使って細かい実装用のテンプレートを内側に隠している。

218 名前:デフォルトの名無しさん mailto:sage [2013/02/20(水) 00:57:28.94 ]
ありがとうメーン

219 名前:デフォルトの名無しさん mailto:sage [2013/02/20(水) 15:03:21.31 ]
githubから最新ソース使ってる人どれくらいいるかな

・新機能はいらないけどバグ修正はほしい -> staging
・PullRequestを出したい -> master を取得して staging/master/hogeFeatureのどれかへ
・最新機能を試したい -> master を取得して hogeFeatureを各自でマージ
こういう認識で合ってる?
masterとstaging のどちらが新しいと一概に言えないっぽいところが悩ましい

wiki.dlang.org/Development_and_Release_Process
誰か訳してくれないかな〜(チラッ

220 名前:デフォルトの名無しさん mailto:sage [2013/02/20(水) 19:25:56.86 ]
>>214
「arr.lengthとarr[i]が定義されてるようなもの」ってことなら、
std.rangeのhasLengthとisRandomAccessRange使えばいいよ

221 名前:デフォルトの名無しさん mailto:sage [2013/02/20(水) 23:33:05.73 ]
> wiki.dlang.org/Development_and_Release_Process

残念だけど、今のところそこに書かれていることは
「こういうプロセスで開発したら良いんじゃない?」程度で
実際にそれに則って開発がされているわけではない。

stagingブランチは2.060のReleaseから作られているが、現状では
「ベータ版が出てる最中に、Release用のRegression fixとかを
masterとは別に積み上げるためのブランチ」程度の意味しかない。

222 名前:デフォルトの名無しさん mailto:sage [2013/02/20(水) 23:36:28.91 ]
>>220
ありがとうございます。



223 名前:デフォルトの名無しさん mailto:sage [2013/02/21(木) 13:16:57.80 ]
>>221
そうか。ありがとう

224 名前:デフォルトの名無しさん mailto:sage [2013/02/22(金) 13:08:56.76 ]
2/22 に 222get
ズサ━━━━⊂(゚Д゚⊂⌒`つ≡≡≡━━━━!!

225 名前:デフォルトの名無しさん mailto:sage [2013/02/22(金) 18:49:57.59 ]
惜しい・・・。君は実に惜しい逸材だったよ。

226 名前:デフォルトの名無しさん [2013/02/22(金) 19:04:12.44 ]
もうすぐ22:22ですね

227 名前:デフォルトの名無しさん mailto:sage [2013/02/23(土) 00:07:53.66 ]
>>130
>>>129
>実験パッチは作って試してみる予定。ただ、Fwdref問題がいっぱい出てくるかもしれないから
>対応するかは半々だなあ。

PullReq出して、マージされました。
https://github.com/D-Programming-Language/dmd/pull/1676

大きな問題が出なければ、2.063で使えるようになると思います。

228 名前:デフォルトの名無しさん mailto:sage [2013/02/23(土) 00:40:11.25 ]
2/22 22:22 に 222get
ズサ━━━━⊂(゚Д゚⊂⌒`つ≡≡≡━━━━!!

229 名前:デフォルトの名無しさん mailto:sage [2013/02/23(土) 00:40:36.58 ]
>>227
うおおお!
ありがとうございます!

230 名前:デフォルトの名無しさん mailto:sage [2013/02/23(土) 00:47:00.25 ]
>>228
localeおかしいぞ

231 名前:デフォルトの名無しさん mailto:sage [2013/02/23(土) 07:28:58.42 ]
>227
すげえええ
内部でrange関数使ってるからnothrowなのにnothrowじゃない日々ともおさらばだ!

232 名前:デフォルトの名無しさん mailto:sage [2013/02/23(土) 14:16:00.62 ]
隠していても俺がウスノロだってバレてしまうのかよッ



233 名前:デフォルトの名無しさん mailto:sage [2013/02/23(土) 19:12:31.79 ]
not ウスノロ
you're ウスベニウンコ

234 名前:片山博文MZパンク ◆0lBZNi.Q7evd [2013/02/24(日) 00:07:31.36 ]
COBOLからD言語への変換って面白そうだね

235 名前:デフォルトの名無しさん mailto:sage [2013/02/24(日) 00:13:17.53 ]
実用性ゼロの最悪の選択だ

236 名前:デフォルトの名無しさん mailto:sage [2013/02/24(日) 03:46:42.64 ]
rubyをDに変換して、さらにJavaで動くように変換したら凄いことになりそう

237 名前:デフォルトの名無しさん mailto:sage [2013/02/25(月) 15:51:16.98 ]
>>235
バカタ山に構うな

238 名前:デフォルトの名無しさん mailto:sage [2013/02/25(月) 16:46:43.58 ]
遠隔操作で片山が逮捕されたと聞いたとき、最初に思い浮かんだ片山は(ry

239 名前:デフォルトの名無しさん [2013/02/25(月) 17:58:44.93 ]
遠隔操作で片山が逮捕されたと聞いたとき、最初に思い浮かんだ片山は(ry

240 名前:デフォルトの名無しさん mailto:sage [2013/02/25(月) 18:44:21.72 ]
なぜDじゃなくてC#なんて比較的ショボい言語を使ったんだ

241 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 17:44:20.81 ]
Dを使った方はまだ極秘で捜査を進めている段階で情報を出すことが出来ない

242 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 19:28:26.70 ]
でもC#のref/outとかプロパティとかはたまに欲しくなるんだ








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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