青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

qiezi的學習園地

AS/C/C++/D/Java/JS/Python/Ruby

  C++博客 :: 首頁 :: 新隨筆 ::  ::  :: 管理 ::
新特性:
1、給委托增加ptr屬性,指向委托所綁定的對象。
這是一個語法糖,dg.ptr被轉化為cast(void*)dg,它只能作右值,所以除了能讀取它以外,在語法上禁止對它賦值。要想把委托綁定到不同的對象,你只能自己實現:

class?Foo{
????
int?foo;
public:
????
this(int?foo){
????????
this.foo?=?foo;
????}

????
void?bar(){
????????writefln(foo);
????}
}

void?main(){

????alias?
void?delegate()?DG;
????DG?dg?
=?&(new?Foo(1)).bar;

????Foo[
10]?foos;
????
foreach(int?i,?inout?Foo?foo;?foos){
????????foo?
=?new?Foo(i);
????}

????
void**?ptr?=?cast(void**)&dg;
????
foreach(Foo?foo;?foos){
????????
*ptr?=?cast(void*)foo;
????????dg();
????}
}

這種方式也不是我們所希望的,一般來說委托綁定到多個對象時,因為是取到某成員函數指針,再進行綁定。比如模擬一個ActiveSupport所擴展的一個ruby.Array#map用法:

import?std.stdio;

class?Foo{
????
int?foo;
public:
????
this(int?foo){
????????
this.foo?=?foo;
????}

????
void?bar(){
????????writefln(foo);
????}
}

class?Array(T){
????
private:
????T[]?data;

????
public:
????
this(T[]?data){
????????
this.data?=?data[0?..?length];
????}

????
void?map(void?function()?func){
????????
void?delegate()?dg;
????????
void**?funcPtr?=?cast(void**)&dg?+?1;
????????
*funcPtr?=?func;
????????
void?**?ptr?=?cast(void**)&dg;
????????
foreach(T?v;?data){
????????????
*ptr?=?cast(void*)v;
????????????dg();
????????}
????}
}

void?main(){
????auto?arr?
=?new?Array!(Foo)([new?Foo(1),?new?Foo(2),?new?Foo(3)]);
????arr.map(
&Foo.bar);
}

是的,delegate內部保存了2個指針,所以我們可以容易地hack它。

[注:上面的main函數中數組直接量賦給棧對象也是這個版本中新增的內容,顯然只能用于static對象是很雞肋的。這里簡單帶過不提。]

[注:上面這個map的模擬并不是ActiveSupport的map擴展的全部用途,那個map還是收集返回值,這里只演示調用語法。ActiveSupport中擴展的map調用語法是map(&:to_s),就可以收集到數組中所有元素調用to_s后的返回值。]

2、給內嵌內的實例增加outer屬性,指向外層對象。

import?std.stdio;

class?Outer{
????
class?Inner{}

????
this(){
????????Inner?inner?
=?new?Inner;
????????inner.outer.foo();
????}

????
void?foo(){
????????writefln(
"foo");
????}
}

void?main(){
????Outer?outer?
=?new?Outer;
}

這個特性可能應用并不是很廣吧。

3、mixin多個析構函數。

template?A(){
????
this(){
????}
????
~this(){
????????writefln(
"A::~A()");
????}
}

template?B(){
????
~this(){
????????writefln(
"B::~B()");
????}
}

class?C{
????mixin?A;
????mixin?B;
}

void?main(){
????C?c?
=?new?C;
????delete?c;
}

這些析構函數會和mixin相反的順序執行。我不明白的是,為什么不讓mixin多個構造函數?為何不讓這些構造函數晚于被mixin的類(上面的C類)的構造函數,并按mixin進來的順序執行?
posted on 2006-10-05 09:23 qiezi 閱讀(667) 評論(5)  編輯 收藏 引用 所屬分類: D
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品中文在线| 午夜精品久久久| 欧美激情综合色| 亚洲伊人伊色伊影伊综合网| 免费日韩av| 在线免费一区三区| 国产一区二区三区高清在线观看| 欧美国产国产综合| 蜜臀久久99精品久久久久久9| 欧美一区在线看| 久久手机精品视频| 久久久久国产一区二区| 欧美激情a∨在线视频播放| 欧美一区二区三区精品电影| 永久域名在线精品| 欧美国产在线视频| 国产精品www994| 欧美视频在线免费看| 国产欧美一区二区精品仙草咪| 国产欧美精品一区| 欧美日韩国产专区| 国产乱人伦精品一区二区| 国产伦理精品不卡| 亚洲国产一二三| 一本一本久久| 久久精品日韩一区二区三区| 久久视频一区二区| 欧美激情影院| 国产精品久线观看视频| 欧美国产视频在线| 欧美午夜性色大片在线观看| 国产欧美日韩视频一区二区三区 | 亚洲新中文字幕| 亚洲视频一区在线| 亚洲综合欧美| 久久国产精品一区二区| 美脚丝袜一区二区三区在线观看 | 玉米视频成人免费看| 亚洲人成欧美中文字幕| 亚洲午夜精品一区二区| 久久综合给合久久狠狠色| 欧美激情国产精品| 亚洲一区二区精品在线观看| 久久精品女人的天堂av| 欧美激情精品久久久久久黑人| 国产精品日韩高清| 亚洲激情自拍| 久久精品成人| 亚洲伦理在线观看| 久久久久久9999| 国产精品成人一区| 亚洲国产成人在线播放| 午夜视频一区在线观看| 亚洲国产mv| 亚洲欧美日韩区| 欧美高清视频在线| 精品动漫av| 欧美一区二区三区四区在线观看| 午夜精品久久久久99热蜜桃导演| 一本不卡影院| 欧美国产综合| 久久大逼视频| 国产精品久久中文| 99国内精品久久| 免费视频一区| 亚洲国产精品一区二区第四页av | 国产精品99久久99久久久二8| 欧美一区二区播放| 免费高清在线视频一区·| 最新成人av网站| 久久精品国产在热久久| 国产精品护士白丝一区av| 亚洲另类在线一区| 久久夜色精品国产欧美乱极品 | 亚洲综合日本| 亚洲人成7777| 欧美精品一区二区三区蜜桃| 在线观看中文字幕亚洲| 久久久精彩视频| 一区二区三区日韩在线观看| 欧美理论视频| 亚洲高清精品中出| 麻豆精品在线视频| 亚洲香蕉网站| 国产精品国产自产拍高清av王其 | 亚洲伊人观看| 国产日韩精品一区二区| 欧美在线观看一区二区三区| 亚洲午夜一区二区| 国产精品剧情在线亚洲| 亚洲国产日韩在线一区模特| 欧美.www| 中文av一区特黄| 国产精品你懂的在线欣赏| 欧美一区二区视频97| 欧美一区二区精美| 伊人久久噜噜噜躁狠狠躁| 欧美大片在线影院| 欧美日韩国产在线看| 欧美高清成人| 在线亚洲国产精品网站| 在线亚洲精品福利网址导航| 欧美激情乱人伦| 在线视频日本亚洲性| 欧美成人精品h版在线观看| 久久综合九色综合欧美就去吻| 亚洲日本电影| 正在播放亚洲| 国产精品久久| 久久免费偷拍视频| 久久不射中文字幕| 91久久夜色精品国产九色| 99精品国产一区二区青青牛奶| 国产精品福利av| 久久久久久久综合狠狠综合| 免费观看不卡av| 亚洲免费视频成人| 欧美日韩精品二区| 久久久久久久一区二区三区| 美国十次了思思久久精品导航| 欧美成人一品| 亚洲精品欧美一区二区三区| 欧美在线日韩在线| 亚洲三级性片| 久久欧美中文字幕| 亚洲一区二区在线观看视频| 亚洲欧美日韩国产一区二区| 亚洲精品久久久久久下一站| 午夜精品一区二区三区在线| 中文精品视频| 一区二区三区久久网| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲午夜羞羞片| 午夜精品在线看| 午夜免费久久久久| 欧美精品乱码久久久久久按摩| 久久精品视频在线播放| 欧美日韩在线播| 亚洲国产精品精华液网站| 国产亚洲欧美aaaa| 日韩午夜高潮| 亚洲激情影院| 久久亚洲精品网站| 久久精品中文字幕免费mv| 欧美三级韩国三级日本三斤| 欧美高清日韩| 精品二区视频| 欧美主播一区二区三区| 中国成人在线视频| 久久黄色级2电影| 在线亚洲一区| 久久男人资源视频| 亚洲欧美国产毛片在线| 玖玖精品视频| 性欧美精品高清| 欧美区亚洲区| 亚洲高清不卡| 日韩视频在线一区二区| 欧美成人一区二区三区片免费| 欧美a级理论片| 国产精品一级在线| 99精品视频免费观看视频| 在线观看国产欧美| 欧美在线啊v一区| 久久一区精品| 亚洲成人在线视频播放| 久久亚洲高清| 亚洲国产欧洲综合997久久| 亚洲精品在线观看视频| 欧美经典一区二区三区| 亚洲日本va在线观看| 亚洲剧情一区二区| 久久www成人_看片免费不卡| 亚洲综合成人在线| 欧美精品在线极品| 蜜乳av另类精品一区二区| 在线播放日韩欧美| 久久激情五月丁香伊人| 欧美sm视频| 一本一本久久a久久精品综合妖精| 欧美日韩一级黄| 亚洲欧美日本伦理| 久久一区国产| av成人手机在线| 亚洲综合电影一区二区三区| 老司机凹凸av亚洲导航| 日韩一级成人av| 国产精品久久网| 狠狠色噜噜狠狠色综合久| 久久久www免费人成黑人精品 | 亚洲永久视频| 久久嫩草精品久久久精品一| 一本高清dvd不卡在线观看| 欧美性做爰毛片| 亚洲伊人伊色伊影伊综合网| 亚洲国产黄色| 久久亚洲不卡| 日韩亚洲欧美中文三级| 在线观看视频日韩| 国产欧美日韩在线视频|