2010-01-01から1ヶ月間の記事一覧
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…
Add @disable attribute import std.stdio; struct A { @disable this(this) {} // コピー禁止 } void main() { A a, b; a = b; // error } C++ではコピー禁止にするためにコピーコンストラクタやoperator=をprivateメンバにする方法がありましたが,D言語で…
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の間にそのためのク…
というタイトルではないですが, 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%…
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…
これくらいのスクリプトならいちいちextensionにしなくてもいいようになったらいいなあ. ダウンロード https://chrome.google.com/extensions/detail/jggmmjlffpmbnphndafobkjkdmhngdcb/ 説明 mixiで外部ブログを日記として設定している人のページを開いた…
import std.stdio; import std.typecons; import std.typetuple; template OddElements(T...) // 省略 template EvenElements(T...) // 省略 alias TypeTuple!( //要素定義 / 表示用テキスト "Read", "読み込みモード", "Write", "書き込みモード", "Append"…
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…
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…
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こ…
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周りはひどいたこ足配線になっていた. そこで,マルチタップを…
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…
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なくても () を省略できてしまうぞ.
それD言語でできるよ! って言いたかったので考えてみた. より現実的な問題は,const_cast や mutable のような不穏なキーワードを伴わず,かつドキュメントと実際の動作が異なる場合です. #include <iostream> class LargeObj; LargeObj* g_obj; class LargeObj { p</iostream>…
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; } 何言語でもありませんよ. 何言語で…
サクッと移植したので公開します. ダウンロード https://chrome.google.com/extensions/detail/ghfmallohcpkjmplpiogpmgjkjmmoehk/ 説明 返信時のコメント欄に「>○○さん」と表示します. Firefox用のGreasemonkeyスクリプトmixi Name Quoterをchromeにexte…
やっぱり,ブログには写真が欲しいですね. フリーの写真を公開しているところを探してみようかな. でもファンヒーターはないか・・・・・.
この間,一階で使っている石油ファンヒーターを直しました. 使っていると,熱を持って,止まってしまうのです. 原因はファンや内部のほこりでした. 分解して掃除したら熱を持たずずっと動くようになりました. で,今度は二階のものが壊れてしまいました…
登録作業をしているといろいろと不満が出てきた. これ,既に買った本を登録することを想定していないんだもの. しかし,改めて積ん読を見直すと,読んでいないとおかしいものがいくつかあるなあw ハルヒはアニメ全部観てから全本購入したけど,一冊も読ん…
気がついたらもう7年くらい経ってる. あんまり上達してねぇ〜! 先週の土曜日,2ヶ月ぶりに英会話に行きました. もう絶対覚えられなくなってると思ったら,多分博論の英文概要を書いたおかげで,何とかなりました. ちょっと英文概要書いたくらいで(と…
持ってる本全部今更登録できるかあああああああ! Amazonでも管理されてるようなもんなのに. これから買ったのだけにしようかな・・・.
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タグは許可されていません」とか言われる. こんにゃろ!!! 原因 アカウント名が - を含んでいると貼り付けられない. こんにゃろおおおおおおお!!!
メディアマーカーにアカウントを作った. これ買った日を入力しなきゃいけないのは辛いぞ. しっかし,自分が読んでいる本とか,論文をまとめたいとは思うんだけど,趣味の本はともかく,論文はリストそのものに価値があるので闇雲に公開することができない…
c:\d\dmd2\src\dfl\internal\winapi.d(2078): Error: long has no effect in expression (0)長らくこのエラーのせいでDFLが新しいdmdで使うことができなかったが,やっと原因がわかった. 他の人はすぐ直せていて困っていなかったのだろうか? 報告されてい…
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…
コンストラクタに引数があるときさらに問題があった. import std.stdio; struct X { static X opCall(int i) // こいつのせい.ローカル変数を外に出せないので戻り値型をref constにもできない { X x; return x; } // this(int i) // こうしましょう // { …
けど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