これが出来るようになったら、自分で好きな型で、好きなリテラル形式で(互換性の為に " で囲ってC# 的には文字列として)記述しても、IDEで静的に検査できるじゃん?>< 超便利じゃん?><(既にそういうアドオンあったりしないのかな?><)
長い><
さらに暗黙の型変換と組み合わせて、
BigNantokaInt hoge = "123";//(実際は123じゃんなすごく巨大な数値だとする)
って書くと、BigNantokaInt のstringからの暗黙の型変換の宣言にその属性がついていたら、BigNantokaIntに実際にキャストできるか検査させて、「無理!」って例外が出たらIDEで警告出すみたいなの><
さらに、暗黙の型変換はリテラルからのみ受け入れたいって追加属性もつけると、
void Hoge(string fuga)
{
BigNantokaInt hoge = fuga;
}
みたいに書くと、同様にチェックする時に「いや、暗黙の型変換はは組み込み型みたいに使うためにつけただけなので、それだと実行時まで検査できなくてどうなるかわかんないじゃん・・・」って警告が出るようにするとか><(でもビルドは通すみたいな)
C# + VS IDEで、例えばBigIntegerを使う時に、
System.Numerics.BigInteger hoge = System.Numerics.BigInteger.Parse(@"42");
とか書くじゃん?>< 整数リテラルだとInt32だと思っちゃうから><
そのせいで例えば
BigInteger.Parse(@"><");
とか書いても静的検査されないじゃん?><
で、思ったんだけど、VS IDE用に「引数がリテラルである場合のみ静的検査する属性」ってあったらおもしろいと思うんだけど無理なのかな?><(つまりこの例だとParse(にその属性がついているとして)を実際に実行してみて例外が出るのかIDEが書いてるそばから試してくれるみたいなの><)
文字列型が無くなったから3への対応無理になったってことなのかな?><
なんで3用の2の文字列型互換ライブラリを公式で作らなかったんだろう?><(正しくない仕様を作ってしまったらそういうめんどくさい事までする覚悟を持っていなかったら、また気軽に正しくない仕様を作っちゃうよ><)
よりPythonicなPythonを目指して(前編):Python 3が後方互換性を捨ててでも求めたもの (2/2) - @ IT http://www.atmarkit.co.jp/ait/spv/0901/31/news017_2.html
https://github.com/asciidoc/asciidoc
ちょっとまって、公式の asciidoc プロセッサ (Python 2 製) の 3 への移行って諦められたのwww (Ruby 製の asciidoctor で開発を継続すると書いてある)