...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

2010-01-01から1ヶ月間の記事一覧

shared static this モジュールコンストラクタ - dmd2.040

Added shared static constructors/destructors, regular static constructors/destructors now deal with TLS import std.stdio; import core.thread; class X { int v; } static X a; static this() { a = new X; a.v = 1; } shared static X b; shared st…

@disable - dmd2.040

Add @disable attribute import std.stdio; struct A { @disable this(this) {} // コピー禁止 } void main() { A a, b; a = b; // error } C++ではコピー禁止にするためにコピーコンストラクタやoperator=をprivateメンバにする方法がありましたが,D言語で…

interfaceにstatic/finalメンバ関数 - dmd 2.040

added static/final function implementations to interfaces import std.stdio; interface I { static int f() { return 1; } } class A : I {} void main() { I i = new A; writeln(i.f()); } staticメンバー関数を配置するために,IとAの間にそのためのク…

D基礎文法最速マスター

というタイトルではないですが, Perl基礎文法最速マスター Ruby基礎文法最速マスター というのが流行っているようなのでD言語をいじってみたい人はどうぞw http://rayerd.plala.jp/pukiwiki/ingwiki/index.php?C%2FC%2B%2B%E3%81%AB%E7%96%B2%E3%82%8C%E3%…

inout(type) or inout(type)?

http://www.digitalmars.com/d/2.0/function.html inout(int)[] foo(inout(int)[] a, int x, int y) { return a[x .. y]; } ふむ. import std.stdio; inout(int)[] f(inout(int)[] a, int x, int y) { return a[x .. y]; } void main() { auto b = f([1,2,3…

mixi outer blog

これくらいのスクリプトならいちいちextensionにしなくてもいいようになったらいいなあ. ダウンロード https://chrome.google.com/extensions/detail/jggmmjlffpmbnphndafobkjkdmhngdcb/ 説明 mixiで外部ブログを日記として設定している人のページを開いた…

enumに対するforeach (2)

import std.stdio; import std.typecons; import std.typetuple; template OddElements(T...) // 省略 template EvenElements(T...) // 省略 alias TypeTuple!( //要素定義 / 表示用テキスト "Read", "読み込みモード", "Write", "書き込みモード", "Append"…

enumに対するforeach

import std.stdio; import std.typecons; import std.typetuple; alias TypeTuple!( "Read", "Write", "Append" ) FileOpenModeDefinition; mixin(defineEnum!("FileOpenMode", FileOpenModeDefinition)); void main() { foreach (string element; FileOpenM…

OddElements!(T) / EvenElements!(T)

import std.typetuple; template OddElements(T...) { static if (T.length == 0) { alias TypeTuple!() OddElements; } else static if (T.length <= 2) { alias TypeTuple!(T[0]) OddElements; } else { alias TypeTuple!(T[0], OddElements!(T[2..$])) Od…

alias thisのフック

via. http://twitter.com/repeatedly/status/8021227522 import std.stdio; class A { B v; B get() { writeln("hook"); return v; } alias get this; } class B {} void main() { auto a = new A; a.v = new B; B b = a; // !!!! writeln(b); } hook a.Bこ…

type ident = void; と alias this による初期化遅延実験

import std.stdio; struct Int { private: int v; bool assigned; public: this(int i) { write(" [init] "); v = i; assigned = true; } int get() { if (!assigned) { write(" [init] "); v = 1; assigned = true; } return v; } void get(int i) { write(…

大きいマルチタップを買ってきて配線がスッキリした

7つのコンセントを持ったでかいのを買ってきた! 冬になり各自が別々に暖房を付けるようになった結果,頻繁にブレーカーが飛ぶようになった. これを避けるために配線を変更したため,最近のPC周りはひどいたこ足配線になっていた. そこで,マルチタップを…

bind的な何か

var tmp = { var url = document.location.href; window.addEventListener("load", function(){print(url);}, false); }; function print(url) { document.open(); document.write("url: " + url); document.close(); } printが引数を要求しているので addEv…

@property - dmd2.039

import std.stdio; class A{ @property int f() { return 0; } int g() { return 0; } } void main(){ A a = new A; writeln(a.f()); writeln(a.f); writeln(a.g()); writeln(a.g); } あれえー? @propertyなくても () を省略できてしまうぞ.

Re: C++ におけるコードレビューの重要性と活用

それD言語でできるよ! って言いたかったので考えてみた. より現実的な問題は,const_cast や mutable のような不穏なキーワードを伴わず,かつドキュメントと実際の動作が異なる場合です. #include <iostream> class LargeObj; LargeObj* g_obj; class LargeObj { p</iostream>…

What is Der?

http://twitter.com/Rayerd/status/7712309633 struct D{ D opBinary(string s)(D o){ static if(s==" ")return o; } D opDispatch(string n)(){ return this; } } void main(){ D hentai; D der = hentai programmer; } 何言語でもありませんよ. 何言語で…

mixi reply helper

サクッと移植したので公開します. ダウンロード https://chrome.google.com/extensions/detail/ghfmallohcpkjmplpiogpmgjkjmmoehk/ 説明 返信時のコメント欄に「>○○さん」と表示します. Firefox用のGreasemonkeyスクリプトmixi Name Quoterをchromeにexte…

フリーの写真が欲しい

やっぱり,ブログには写真が欲しいですね. フリーの写真を公開しているところを探してみようかな. でもファンヒーターはないか・・・・・.

「それを捨てるなんてとんでもない!」

この間,一階で使っている石油ファンヒーターを直しました. 使っていると,熱を持って,止まってしまうのです. 原因はファンや内部のほこりでした. 分解して掃除したら熱を持たずずっと動くようになりました. で,今度は二階のものが壊れてしまいました…

メディアマーカーへの登録

登録作業をしているといろいろと不満が出てきた. これ,既に買った本を登録することを想定していないんだもの. しかし,改めて積ん読を見直すと,読んでいないとおかしいものがいくつかあるなあw ハルヒはアニメ全部観てから全本購入したけど,一冊も読ん…

土曜7時の英会話

気がついたらもう7年くらい経ってる. あんまり上達してねぇ〜! 先週の土曜日,2ヶ月ぶりに英会話に行きました. もう絶対覚えられなくなってると思ったら,多分博論の英文概要を書いたおかげで,何とかなりました. ちょっと英文概要書いたくらいで(と…

メディアマーカー

持ってる本全部今更登録できるかあああああああ! Amazonでも管理されてるようなもんなのに. これから買ったのだけにしようかな・・・.

Logger

import std.stdio; class Logger(T) { T loggee; this() { loggee = new T; } this(T loggee) { this.loggee = loggee; } auto opDispatch(string name, U...)(U args) { writeln("call " ~ name); mixin("return loggee." ~ name ~ "(args);"); } } class A…

ブログパーツ使えねえええええええええ

メディアマーカーのブログパーツを使おうと思ったのに貼り付けたら 「ご指定のscriptタグは許可されていません」とか言われる. こんにゃろ!!! 原因 アカウント名が - を含んでいると貼り付けられない. こんにゃろおおおおおおお!!!

読んだ本とか論文をまとめる

メディアマーカーにアカウントを作った. これ買った日を入力しなきゃいけないのは辛いぞ. しっかし,自分が読んでいる本とか,論文をまとめたいとは思うんだけど,趣味の本はともかく,論文はリストそのものに価値があるので闇雲に公開することができない…

DFL rev 81 + dmd 2.038

c:\d\dmd2\src\dfl\internal\winapi.d(2078): Error: long has no effect in expression (0)長らくこのエラーのせいでDFLが新しいdmdで使うことができなかったが,やっと原因がわかった. 他の人はすぐ直せていて困っていなかったのだろうか? 報告されてい…

構造体がコンストラクタを持つとき - dmd 2.038

import std.stdio; struct S { int x, y; this(int x, int y) { this.x = x; this.y = y; } } class A { const S s = {1, 2}; } void main() { A a = new A; writeln(a.s); } C:\d\projects\test>dmd main Error: struct S has constructors, cannot use { i…

rvalueはconst refで受け取れない (2) - dmd 2.038

コンストラクタに引数があるときさらに問題があった. import std.stdio; struct X { static X opCall(int i) // こいつのせい.ローカル変数を外に出せないので戻り値型をref constにもできない { X x; return x; } // this(int i) // こうしましょう // { …

rvalueはconst refで受け取れない - dmd 2.038

けどopEqualsはref const引数を要求してくる. import std.stdio; struct X { bool opEquals(ref const(X) x) const { return true; } } struct Y { X getX() const { return X(); } } void main() { X x; Y y; writeln(x == y.getX); // Error: y.getX() is…

ランキング工作

これはひどいwwwwww