D言語 Part18at TECH
D言語 Part18 - 暇つぶし2ch944:デフォルトの名無しさん
08/08/01 19:20:33
バグかなバグかな?

--- main.d ---
import func;
void main(){ line(); }

--- fund.d ---
void line(uint lineNum = __LINE__){ }


$ dmd main.d func.d
__LINE__
Internal error: e2ir.c 612

945:デフォルトの名無しさん
08/08/01 19:22:41
いけね、ファイルを分けなくても再現した。

void line(uint lineNum = __LINE__){}
void main(){ line(); }

946:デフォルトの名無しさん
08/08/01 22:10:27
2007年のカンファレンスで構造体にコンストラクタつけるとかなんとか言ってなかったか?
俺の記憶違いかな?

947:デフォルトの名無しさん
08/08/01 23:16:19
リテラルあるしなあ……。

948:デフォルトの名無しさん
08/08/02 01:59:50
gdcのsvnで手に入る一番新しいやつ。

std/c/windows/com.d

interface IUnknown
{
HRESULT QueryInterface(IID* riid, void** pvObject);
ULONG AddRef();
ULONG Release();
}

ではなくて、

interface IUnknown
{
static HRESULT QueryInterface(IID* riid, void** pvObject);
static ULONG AddRef();
static ULONG Release();
}

が正しいような気がする。
後者じゃないとビルドできないし。

949:デフォルトの名無しさん
08/08/02 14:25:36
>>948
んなばかなあ

950:デフォルトの名無しさん
08/08/02 14:35:23
>>948
何で前者でエラーになるのか知らないけど、staticは無いと断言できる。

951:デフォルトの名無しさん
08/08/02 14:44:56
大体staticで何をカウントしてるんだ

952:デフォルトの名無しさん
08/08/02 23:13:01
comが何なのか良く知らないので、
エラー回避のためにstaticにしたんだが、
やっぱりおかしいのか。

libphobos/std/c/windows/com.d:240: error: '*LTHUNK0' aliased to undefined symbol '_D3std1c7windows3com9ComObject14QueryInterfaceMWPS3std1c7windows3com4GUIDPPvZi'
libphobos/std/c/windows/com.d:240: error: '*LTHUNK1' aliased to undefined symbol '_D3std1c7windows3com9ComObject6AddRefMWZk'
libphobos/std/c/windows/com.d:240: error: '*LTHUNK2' aliased to undefined symbol '_D3std1c7windows3com9ComObject7ReleaseMWZk'

みたいなエラーがでるんだが、
LTHUNK0なんてソースのどこにも出てこないし謎。

試しにいろいろいじって、たまたまstaticにしたらうまくいったという話。

まあ、comプログラミングなんかしないから、
別に通ればなんでもいいのだが。

953:デフォルトの名無しさん
08/08/03 13:39:36
さっきちょっと思いついたんだけど変数の変更を一時的に禁止する様な機能ある?

const(hoge, fuga)
{
// hoge, fugaは変更禁止
}
// 変更OK


954:デフォルトの名無しさん
08/08/03 13:54:21
void main() {
int hage = 42;

(const typeof(hage) hage = hage) {
writeln(hage); // 42
hage++; // error
}();
}

dirtyすぎる…

955:デフォルトの名無しさん
08/08/03 14:06:48
最近ここで晒されるソースを見ても何がなんだかです。

956:デフォルトの名無しさん
08/08/03 14:17:12
>>953
pureとか予約語になってるんだし,要望したら入れてくれるんじゃね?

957:953
08/08/03 14:41:00
>>954
バグ回避目的なのに手段が真逆に向かっている様なw

958:デフォルトの名無しさん
08/08/03 15:09:29
なんか、バグが云々って言ってたので、
よくわかりませんが、つたない英語で投稿してみました。

URLリンク(www.digitalmars.com)

適当なので、怒られてたり、意思が通じてなかったりしたら
すいませーんっと。


959:デフォルトの名無しさん
08/08/03 15:14:46
ああ、bugzillaに投稿とかのほうがよかったんだろうなぁとか
思ったけど、いいや。やる気ないので、スマヌです。


960:デフォルトの名無しさん
08/08/03 15:16:56
これじゃ、何かいてるかわからないな。
>846
>847
>848

ここらへんの話です。
暑くて駄目だwww


961:デフォルトの名無しさん
08/08/03 16:13:57
一時変数の名前はhigeを使ってください

962:デフォルトの名無しさん
08/08/03 16:43:12
>>953
既出みたいなもんだけど関数のconst引数じゃダメなの?
class A{const void pp(){}}
void f(const A a){
a.pp;
}
void main(){
A a = new A;
f(a);
}

963:デフォルトの名無しさん
08/08/03 16:45:56
値型でもこう
int i=1;
g(i);
void g(const ref int i){
  i++; // error
}

964:デフォルトの名無しさん
08/08/03 16:47:26
sakuraiさんが久しぶりにDの話題してるの見たw


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