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


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

D言語 Part14



1 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:10:24 ]
プログラミング言語 D について語るスレッドです。
過去スレは >>2

■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ)

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://dsource.org/ (dsource)
ttp://www.sun-inet.or.jp/~yaneurao/dlang/
ttp://wisdom.sakura.ne.jp/programming/d/


75 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 07:42:58 ]
> System is the same as Windows on Windows platforms,
> and C on other platforms.
'System'はWindowsプラットフォームでは'Windows'と同じであり、
それ以外では'C'と同じです。

要するにプラットフォーム依存のLinkageを指定できるってことだな。


76 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 09:09:04 ]
What's New for D 2.003
Jul 21, 2007
New/Changed Features

* Added 0x78 Codeview extension for type dchar.
* Moved next member from Object.Error to Object.Exception
* Added ForeachRangeStatement
* . Added extern (System)
* Added std.traits
* Bugzilla 345: updated std.uni.isUniAlpha to Unicode 5.0.0

77 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 11:40:01 ]
大きいのか小さいのか微妙な変化だな…
個人的には __traits よりも、デバッグ時に関数の隠し引数にでも _caller とか入れてくれたらと思う。

78 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 11:48:57 ]
ええい、たった今初めてversion2系をちょっと試してみて速攻1系に戻したところだというのにw

しかし何だろう、このforeach周りの不自然な強力さは。
RangeクラスとRangeリテラルを作ろうとは思わなかったんだろうか。
あと範囲を表す関係の演算子って最後を含むか含まないかで".."と"..."あたり二つ用意しないとどことなくメンドイのよね。

traitsはメタプログラミング関係か?


79 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:09:07 ]
これは強力・・なのか?


80 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:44:30 ]
>>77
debugブロック?内でしか使えないとか

81 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 15:59:38 ]
ForeachRangeキタ━━━━━━(゚∀゚)━━━━━━ !!!!!

これを待ってたんだよ。ウォルタたん大好き!

82 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 16:23:34 ]
perlは、
for (0..3){print $_;}
0123なんだけど

D 2.003 だと
foreach (i; 0 .. 3){writef(i);}
012なのね


83 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 16:28:12 ]
それは配列のスライスと一緒だな。



84 名前:77 mailto:sage [2007/07/23(月) 17:23:02 ]
>>80

import std.stdio;
struct Caller{ string fileName; int line; }
debug void func(Caller _caller, int x){
writefln("%s(%d) : x = %d", _caller.fileName, _caller.line, x);
writefln(x);
}
else void func(int x){ writefln(x); }
void main(){
debug func(Caller(__FILE__, __LINE__), 10);
else func(10);
}

こういうようなのを、

import std.stdio;
void func(int x){
debug writefln("%s(%d) : x = %d", _caller.fileName, _caller.line, x);
return x;
}
void main(){
func(10);
}

っていう風に書けたらいいなって思って。
これでは省いたけど、モジュール名とか呼び出し元の関数名とかモジュール名とか
呼び出し元の関数の_callerとかもあるとさらにいいかも?
長文で申し訳ない。

85 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 17:34:10 ]
flectionedとか

86 名前:77 mailto:sage [2007/07/23(月) 18:24:49 ]
flectionedって、そこまで詳細な情報って得られるの?
呼び出し元のファイル名の取り出し方とか。
軽く見聞きした程度だからどこまでできるかよくわかってないのだけど…
でもまぁ、とりあえず標準でそういう機能がほしいところですね…

87 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 18:47:15 ]
>>66
// Otsu.new!!(argAlloc)(argCtor)
class Otsu{
template New_(aA...){
static typeof(this) New_(TaC...)(TaC aC){
return new(aA) typeof(this)(aC);
}
}
template New(aA...){
alias New_!(aA) New;
}
int n;
this(int n){ this.n = n; }
}
//任意のクラスに対応できる版
template niw_(T,aA...){
T niw_(TaC...)(TaC aC){
return new(aA) T(aC);
}
}
template niw(T, aA...){
alias niw_!(T,aA) niw;
}
void main(){
printf("%d\n", Otsu.New!()(3).n);
printf("%d\n", niw!(Otsu)(5).n);
}

とかどうだろう

88 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:05:49 ]
ヲルターは日曜日にDつくってんのかな

89 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:56:51 ]
__traitsのallMembersやgetMemberは列挙体にも対応してるのか。
願って止まなかった機能追加キタコレ。

90 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:20:17 ]
なんで 1.x にはForeachRangeStatementが追加されていないんだああああああああああああああああああああああああ

91 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:25:45 ]
あわてるな これはヲルターの罠だ

92 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:41:47 ]
更新まだー

93 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 08:27:24 ]
>>87
ほおお



94 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 15:06:03 ]
>>39
sc.iniが分からないから
どうやればいいか分からないですけど

前回のはプロクシの部分で不味かったみたいなので修正

sakuratan.ddo.jp/uploader/source/date45550.lzh

@プロクシの有無
A@が有ならプロクシ接続先の入力
B環境変数の登録
のみ確認します

95 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 15:12:51 ]
まぁこんなの全然必要無いですけどね…

96 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 16:41:26 ]
やっとForeachRangeStatementきたか。

.. 演算子でタプルを作れたら面白そう。

void f(int[] a ...);
f(0 .. 2); // == f(0, 1)
auto x = [3 .. 6]; // == [3, 4, 5]


あんまり使い道なさそうだけど

97 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 17:15:44 ]
>>96
template t(T...){ alias T t; }
template range(int s, int e){
static if(s<e){ alias t!(s, range!(s+1,e)) range; }
else{ alias t!() range; }
}
import std.stdio;
void main(){
writefln((int x,int y){return x+y;}(range!(0,2))); // 1
writefln([range!(3,6)]); // [3,4,5]
}

とかテンプレートで

98 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 22:09:18 ]
['a' .. 'z'] とかなら使いようもあるかも。

99 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 22:10:02 ]
と思ったが、['a' .. 'z' + 1] か。汚いな。

100 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 22:24:32 ]
Ruby みたいに .. と ... の使い分けがあれば

101 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 22:50:18 ]
しかし今更 .. が末尾を含むことにされても困る

102 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:12:39 ]
+1でよくねwww

103 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:15:32 ]
どっちかというと使い分けするほうが俺的にはめんどい
だいたい..と...とか似すぎで読み違え頻発wwするかは知らないけど



104 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:28:16 ]
いまどきキーワードで色分け出来ないエディタを使ってる人は
なかなかいないだろうから .. と ... で色を変えりゃいい

そういう問題でもないか

105 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:24:54 ]
直感的に反するだろうね

106 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 02:28:42 ]
=== がなくなって is になったときって
間違いやすいから変わったのかな

rubyで .. と ... が使われているなら
使い勝手はどうかリサーチしてみればいいんじゃね

107 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 06:23:46 ]
VSPluginD アップデートしてくれないかなぁ

108 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 06:25:00 ]
What's New for D 1.020
Jul 23, 2007
New/Changed Features
Bugs Fixed
Fixed extern (System)

109 名前:デフォルトの名無しさん [2007/07/25(水) 07:52:30 ]
久々にみてみたら、更新に古いバグジラ番号のFixが結構多い気がする
これはそろそろか・・・?

110 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 13:33:03 ]
>>106
ruby 使ってるけど .. と ... でどっちが末尾含むのか毎回混乱してる.

111 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 14:22:20 ]
>>110
.が、一つ多いのだから
含むと覚えればよい

112 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 16:10:00 ]
... は含まない方だよ。

113 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 16:47:02 ]
>>110-112
おいもう結論が出たのか
と思ったがDは>>111の考えでおkというだけだな



114 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 16:51:03 ]
余計どっちがどっちかわかんなくなるがなw

115 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:12:02 ]
$[a,b) とかいう表記でもあればなあ。

116 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:31:57 ]
Unicode使って含む表記を a〜b にするとか


117 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:42:39 ]
1 to 5 とか。
予約語を増やす方向には行かなさそうだけど・・・
(というか、toは変数名に多く使われてそうだから余計可能性ないか)

118 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:31:09 ]
3項演算子 in.. の追加まだー

if(n in 2..4) writefln(n);

119 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:39:14 ]
between演算子か。

クエリ言語でしか見たことないけど、
assert(index in 0 .. array.length);
とか書ければ便利そうだな。

120 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:03:29 ]
前から if (2 <= x < 4) とか書きたかったんだよ

121 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:17:05 ]
python キタ━━━━━━(゚∀゚)━━━━━━ !!!!

122 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:17:54 ]
ICFPの国際プログラミング・コンテストで日本のチーム「kuma-」が2位に

>プログラミング言語としてはRuby,C,C++,D,Java,Perlを使用した。

Dが国際プログラミングコンテストの日本人チームで使われたとか。
メジャーになった…のか?


123 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:35:25 ]
検索してみたらそれ去年の記事ジャマイカ
今年のコンテストが終わったばかりだからややこしい

それはそれとして去年のkuma-はk.inaba氏含めたチームなんだから
メジャーになったと言われてもちょっと納得できない罠



124 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:39:56 ]
今年はk.inaba氏とshinh氏しか使ってないに100ガバス

125 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:45:13 ]
今年はrope(C++)とHaskelあたりが主力だったのかね
Dは残念でした

126 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:40:49 ]
>>118
Rangeクラス化で二項を推すぜー

class Range(ValueType : Comparable){
  ValueType min, max;
  bool opIn_r(ValueType lhs){ return (min <= value) && (value < max); }
}

if(n in 2..4) writefln(n);

127 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 12:15:42 ]
phobosを使って作ったアプリを配布するときはソースを公開すべき?
phobosのライセンスはZlibライセンスに似ていますが、GPLとは
書いてないし、LGPLと解釈すれば自分で書いたソースは公開しなくても
よいような気がする


128 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 12:49:20 ]
>>127
>公開
そんなことないでしょ


129 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:05:22 ]
>>126
なんか最適化を阻害しそうじゃね?

(x in a .. b) が
(x >= a && x < b) や
(x.opCmp(a) >= 0 && x.opCmp(b) < 0)
と見なされれば十分だと思う。

130 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 17:48:45 ]
みんなデバッグどうしてるの?
flectioned 使えば落ちたときのスタックトレースを見ることはできるけど

ブレークポイント設定してステップ実行とかしたいのに
windbg は不安定すぎて使い物にならないんだけど・・・


131 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 17:57:13 ]
>>130
俺はwindbgでそんなに困ったことなかった…
ddbgはどう?使ったことないけど

132 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 18:38:41 ]
>>130
参考にならないかもしれないけど、俺はVC++2003使ってる。
これだけで、ステップ実行、落ちたときの呼び出し履歴、リソースエディタと、
今のDに足りないものが補えてる。

133 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 18:49:35 ]
>>131
thx ddbgというのもあるんだね 今度試してみるよ

VS2005でうまくいけば一番いいんだけども
_Dmainに関数ブレイクポイントを設定して頭からステップ実行するしかできてなくて不便

行ブレイクポイントを設定しても「このドキュメントのシンボルが読込まれていません。」と表示されて
ブレークポイントが無効化されてしまう
これは設定でなんとかなるのかな?



134 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 21:27:04 ]
コンパイラに-opがあるのをつけてみたらどうかな

あとasm{int 3;}がブレイクポイントになる。
過去スレにあった

135 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 23:02:56 ]
>>132
VS がシンボル情報を認識できているってこと?
どうやるんだろう

>>134
-op をやるだけではダメだった
シンボル情報がないから対応するソースを表示できないって怒られた
asm はちゃんとブレークポイントになったよ

136 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 23:12:44 ]
_Dmain に関数ブレークポイントを設定したらうまくソースとの対応を認識してくれるので
map ファイルに出てくる他のシンボル名で関数ブレークポイントを設定したらどの関数でもうまくいった
VS に map ファイルの内容をシンボル情報として使ってもらう方法をどなたかご存じないですか?

137 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 00:53:33 ]
やっぱりリンカが PDB ファイルを出力してくれないと
VS ではどうしようもない気がしてきたんですが・・・ orz
オブジェクトファイルの形式が違うからなあ・・・

138 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 03:31:24 ]
何度も書き込んですまん
ddbg 試してみたけど出力に多バイト文字含んでると落ちるね
ddbg を実行するディレクトリ名とか・・・

ddbg は Code::Blocks をフロントエンドとして動作できるらしいからそっちに期待してみる
前スレの人は失敗に終わったようだが・・・

139 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 19:34:22 ]
enum Foo : ushort
{ HAGE = 11, HIGE = 22, HUGE = 33, HOGE = 999, }

template Bar(T)
{ const char[] Bar = T.stringof; }

void main()
{
   /* ちゃんとHAGE HIGE HUGE HOGEが表示される */
   foreach (str; __traits(allMembers, Foo))
   {
      printf("%.*s\n", str);
   }

   Foo foo;
   printf("%.*s\n", Foo.stringof); //"ushort"が表示される
   printf("%.*s\n", (Foo).stringof); //"ushort"が表示される
   printf("%.*s\n", foo.stringof); //"ushort"が表示される
   printf("%.*s\n", Bar!(Foo)); //"ushort"が表示される
}


どうすればFooという型から(コンパイル時評価可能な)文字列"Foo"を取得できるんだ?

140 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 19:59:14 ]
コンパイラのバグくさい気がするのでテケトーに回避策を試した結果。

template Bar(T)
{invariant Bar = (T[]).stringof[0..$-2]; }

でOK

141 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 20:17:53 ]
>>140
素敵な回避策だ。
トンクス!

142 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 21:45:04 ]
            ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ <こいつ最高にアホ
 彡、   |∪|  /
/ __  ヽノ /
(___)   /
   ∩___∩
   | ノ      ヽ !
  /  ●   ● |   こいつも最高にアホ
  |    ( _●_)  ミ
 彡、   |∪|   / .\
/ __  ヽノ / \ ...\
(___)   /   .│ ..│
            /  ヽ
            l..lUUU
            .U

143 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 23:02:35 ]
うけけめけ



144 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 15:24:36 ]
ばーじょんあっぷまだー?

145 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 18:26:52 ]
>>129
考えてみたけど、インライン化やメンバをfinalにする、Rangeオブジェクトをスタックに置く等が行われれば、
案外いい感じに最適化されるんじゃなかろーかという気がした。
あとRangeクラスはあると実際便利なので、標準で入ってて欲しいなーという願望もあったり。

パフォーマンスを気にしてクラス作るのを敬遠しちゃって、
コードの可読性とかで大きく損をしてるケースを沢山見るのよねぇ。かなり歯がゆい気分になる。
D言語には是非とも、クラス化のリスクを徹底的に減らすような最適化を推進してもらいたいデス。

ところでForeachRangeStatementの箇所がまだ翻訳されてないんで自信無いけど、
Rangeとして書けるのは整数だけ?
いくつかの演算子が適用できればオブジェクトでも行けるようにも読める気がするけど。

146 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 18:30:25 ]
>>145
イテレータにも使えるとWalter氏が言ってたような…

147 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 18:45:36 ]
>>145
ForeachRangeStatementは今のところスカラーな数値(整数/実数/虚数)だけ。
ただ、構造体/クラスに対応する考えはあるみたい。

news://news.digitalmars.com:119/f817uv$aqd$2@digitalmars.com

148 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 22:10:51 ]
void main() {
int[5] a;
foreach(p; &a[0] .. &a[$-1])
writefln(p);
}

ポインタ型にも適用できるけど、型の大きさにかかわらず1刻みになるようだな。

149 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 14:53:19 ]
Cのdmcでdll作りたいんだけど、どこで聞けばいい?

150 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 15:01:13 ]
DMCスレ落ちたんか

151 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 15:14:15 ]
クラウザーさん

152 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 00:01:06 ]
アップデートまだー?

153 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 16:57:55 ]
関数が複数の値を返せたらいいのになあ・・・



154 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 17:04:45 ]
Dにインデクサないの?

155 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:25:18 ]
opIndex?

156 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 22:47:10 ]
だよね

157 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 22:48:31 ]
>>153
Tupleを返せたらいいんだけどな
なんでできないんだ

158 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 01:21:34 ]
Tupleはコンパイルタイムにしか存在しないデータ型だから無理じゃね?

159 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 03:43:07 ]
Dには集合型ないの?

160 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 04:12:09 ]
>>158
タプル自体の構成を変更したりはできないけど、
タプルの各要素を実行時に変更するのはOK。

ので、
 int n; char[] str;
 Tuple!(int,char[]) retTupleFunc(){ return Tuple!(3,"hoge".dup); }
 Tuple!(n,str) = retTupleFunc();
というような感じのが、もっとマシな構文で実現される整合性の余地はある。

161 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 04:19:57 ]
早くタプルリテラルを追加してほしい。

162 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 04:24:44 ]
$(int, char[]) だの @(int, char[]) だの、
まだ使ってない記号を導入するつもりはないんだろうかね。

163 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 04:42:07 ]
それより、変数宣言以外での、式で使うカンマ構文をナシにして、
a,b,c = f();
で済むようにすりゃ簡潔でいいと思う。
f(x,y,z)とかf((x,y),z)とかやるときも構文の不整合起こさないで済みそうだし。



164 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 11:01:11 ]
>>163
それ、不整合を起こさないためには必須だけど代わりの構文が無いと困る。

165 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 11:07:02 ]
>>163
Luaでそんなことやってたけど、
便利だわな

166 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:40:38 ]
カンマ演算子もタプルを生成するようにして、タプルをスカラーで評価したら一番最後の値が返されるようにするとか。

167 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 15:18:03 ]
今のところはこういうやつでお茶を濁すしかないのかね。
これは C++ だが。
www7b.biglobe.ne.jp/~robe/pf/pf011.html

168 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 15:54:29 ]
テンプレート型にstaticな演算子が適用できないのは仕様?

struct S {
static void opAssign(int a) { writefln(a); }
}
struct ST(T) {
static void opAssign(int a) { writefln(a); }
}
void main() {
S = 1; // ok
ST!(int) = 1; // error
ST!(int).opAssign(1); // ok
}

169 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 17:18:08 ]
alias ST!(int) STI;
STI = 1;

とすれば通るけどね

170 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 17:42:19 ]
前にもそんな感じのテンプレートの挙動があったな。
まあ仕様じゃなくてバグだろう。

171 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:13:41 ]
>>165
むちゃくちゃ好きだったLuaとSquirrelだけど
D言語にはまった以降いらなくなってしまった・・・



172 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:16:16 ]
和訳の中の人はなんであんなにマメなんだ?

173 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 07:11:48 ]
まあ、なんにしろありがたいことは確かだ。



174 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 11:56:59 ]
FAQかもしれませんがGTK+ってDからも使えますか?

175 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:03:28 ]
っ gtkD






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

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

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