東方算程譚

Oriental Code Talk ── επιστημηが与太をこく、弾幕とは無縁のシロモノ。

目次

Blog 利用状況

ニュース

著作とお薦めの品々は

著作とお薦めの品々は
東方熱帯林へ。

あわせて読みたい

わんくま

  1. 東京勉強会#2
    C++/CLI カクテル・レシピ
  2. 東京勉強会#3
    template vs. generics
  3. 大阪勉強会#6
    C++むかしばなし
  4. 東京勉強会#7
    C++むかしばなし
  5. 東京勉強会#8
    STL/CLRによるGeneric Programming
  6. TechEd 2007 @YOKOHAMA
    C++・C++/CLI・C# 適材適所
  7. 東京勉強会#14
    Making of BOF
  8. 東京勉強会#15
    状態遷移
  9. 名古屋勉強会#2
    WinUnit - お気楽お手軽UnitTest

CodeZine

  1. Cで実現する「ぷちオブジェクト指向」
  2. CUnitによるテスト駆動開発
  3. SQLiteで組み込みDB体験(2007年版)
  4. C++/CLIによるCライブラリの.NET化
  5. C# 1.1からC# 3.0まで~言語仕様の進化
  6. BoostでC++0xのライブラリ「TR1」を先取りしよう (1)
  7. BoostでC++0xのライブラリ「TR1」を先取りしよう (2)
  8. BoostでC++0xのライブラリ「TR1」を先取りしよう (3)
  9. BoostでC++0xのライブラリ「TR1」を先取りしよう (4)
  10. BoostでC++0xのライブラリ「TR1」を先取りしよう (5)
  11. C/C++に対応した、もうひとつのUnitTestFramework ─ WinUnit
  12. SQLiteで"おこづかいちょう"
  13. STL/CLRツアーガイド
  14. マージ・ソート : 巨大データのソート法
  15. ヒープソートのアルゴリズム
  16. C++0xの新機能「ラムダ式」を次期Visual Studioでいち早く試す
  17. .NETでマンデルブロ集合を描く
  18. .NETでマンデルブロ集合を描く(後日談)
  19. C++/CLI : とある文字列の相互変換(コンバージョン)
  20. インテルTBBによる選択ソートの高速化
  21. インテルTBB3.0 によるパイプライン処理
  22. Visual C++ 2010に追加されたSTLアルゴリズム
  23. Visual C++ 2010に追加されたSTLコンテナ「forward_list」
  24. shared_ptrによるObserverパターンの実装
  25. .NETでマンデルブロ集合を描く(番外編) ── OpenCLで超並列コンピューティング
  26. StateパターンでCSVを読む
  27. 状態遷移表からStateパターンを自動生成する
  28. 「ソートも、サーチも、あるんだよ」~標準C++ライブラリにみるアルゴリズムの面白さ
  29. インテルTBBの同期メカニズム
  30. なぜsetを使っちゃいけないの?
  31. WPFアプリケーションで腕試し ~C++でもWPFアプリを
  32. C++11 : スレッド・ライブラリひとめぐり
  33. Google製のC++ Unit Test Framework「Google Test」を使ってみる
  34. メールでデータベースを更新するココロミ
  35. Visitorパターンで遊んでみたよ
  36. Collection 2題:「WPFにバインドできる辞書」と「重複を許す検索set」
  37. Visual C++ 2012:stateless-lambdaとSQLiteのぷち拡張
  38. 「Visual C++ Compiler November 2012 CTP」で追加された6つの新機能

@IT

  1. Vista時代のVisual C++の流儀(前編)Vista到来。既存C/C++資産の.NET化を始めよう!
  2. Vista時代のVisual C++の流儀(中編)MFCから.NETへの実践的移行計画
  3. Vista時代のVisual C++の流儀(後編) STL/CLRによるDocument/Viewアーキテクチャ
  4. C++開発者のための単体テスト入門 第1回 C++開発者の皆さん。テスト、ちゃんとしていますか?
  5. C++開発者のための単体テスト入門 第2回 C++アプリケーションの効率的なテスト手法(CppUnit編)
  6. C++開発者のための単体テスト入門 第3回 C++アプリケーションの効率的なテスト手法(NUnit編)

AWARDS


Microsoft MVP
for Visual Developer - Visual C++


Wankuma MVP
for いぢわる C++


Nyantora MVP
for こくまろ中国茶

Xbox

Links

記事カテゴリ

書庫

日記カテゴリ

Observerネタを書きました。ついでに横浜勉強会へのお誘い。

CodeZineです、はい。

 

shared_ptrによるObserverパターンの実装

 

 お馴染みObserverパターンです。要はCallbackすよ。

Observerの歴史は古く、織田信長が長引く戦に疲弊し、矢の飛び交う中

「わしはちょっと寝る。なにかあったら起こせ」

と臣下に伝え馬上で熟睡したとの記録が残っており、

馬上で眠る信長公の姿を模した木彫りの馬: 御武座馬(おぶざば)

は郷土玩具として有名ですね。(うっそぴょーん)

 

Observerパターンに起こる問題のひとつが、

「起こそうとしたお館様が冷たくなってたらどーすんの?

 

.NET/Javaでは強参照、つまり「死なさへんでぇ」と。

C++では参照カウントを使って死なさんこともできますし、

弱参照を使えば死んでもだいぢょぶな実装もできるよ。

 

ってなことを書いてます。コードたっぷりです。

 

ぢつは、このお話もう一本のルートがありましてですね。

.NETではdelegate/eventってゆーナイスなからくりが

Observerパターンの利用を自由なものにしてくれました。

delegateのおかげで特定のクラス/インタフェースから継承/実装

しなければ信長になれないってゆー縛りから解放されます。

 

さて、C++0Xでは新たにlambdaが導入されました。

このlambdaを使ってdelegate/eventの真似ごとができるはず。

 

どんな手管でdelegate/eventっポいものを作るか...知りたくね?

わんくま横浜勉強会にいらっしゃいませ(ホホホ)。

マンガ本とか魔導書とか怪しげなカードとかもありますよー

 

投稿日時 : 2010年8月10日 19:36

コメントを追加

# re: Observerネタを書きました。ついでに横浜勉強会へのお誘い。 2010/08/10 21:21 Chiharu

shared_ptr / weak_ptr は便利ですね。私も多用します。濫用といっても良いくらい。というか new と書いたらそこには shared_ptr が必ずあるくらい。
(知らない間に shared_array ってどこかに行っちゃったんですね。

マルチスレッド時に参照カウンタの上げ下げでロック考慮しなくてもいい点もグッドですね。
(参照カウンタが 0 になるタイミングだけ注意が必要ですが

# re: Observerネタを書きました。ついでに横浜勉強会へのお誘い。 2010/08/10 21:46 επιστημη

> shared_array

あー。どっか迷子になっちゃってますねぃ。
「shared_ptr<vector<T>> で我慢しとけ」ってことかしら。

# re: Observerネタを書きました。ついでに横浜勉強会へのお誘い。 2010/08/10 22:13 Chiharu

或いは shared_ptr<T> ptr(array, [](T* array) { delete [] array; }); とか。

# Observerネタを書きました。ついでに横浜勉強会へのお誘い。 2010/08/11 0:52 .NET Clips

素敵なエントリーの登録ありがとうございます - .NET Clipsからのトラックバック

# re: Observerネタを書きました。ついでに横浜勉強会へのお誘い。 2010/08/11 9:08 はつね

織田信長

# 
Twitter Trackbacks for

Observer????????????????????????????????????????????????????????????????????????
[wankuma.com]
on Topsy.com
2010/08/11 14:11 Pingback/TrackBack


Twitter Trackbacks for

Observer????????????????????????????????????????????????????????????????????????
[wankuma.com]
on Topsy.com

# re: Observerネタを書きました。ついでに横浜勉強会へのお誘い。 2010/08/11 19:15 επιστημη

> 織田信長

かおまっか(ハヅカチー
照れ隠しに脚色してみた。

# re: Observerネタを書きました。ついでに横浜勉強会へのお誘い。 2010/08/11 22:23 もりお

う、うそぴょん!?
記事の4ページ目の room.imcrement() は Typo でしょうか。
ところで επιστημη さんのコードをみていると後置インクリメントが
少ないように思うのですが C++ におけるインクリメントのお作法のようなものがあるのでしょうか。

# re: Observerネタを書きました。ついでに横浜勉強会へのお誘い。 2010/08/11 22:35 επιστημη

> Typo でしょうか。

ぁぅ...typoです。修正しときました。

> C++ におけるインクリメントのお作法

お作法的には インクリメント/デクリメントは原則前置です。
ふつー
X& operator++() // 前
X operator++(int) // 後
と定義されています。
なので後置だと値返しとなり、余計なコピーが必要となりますから。

# re: Observerネタを書きました。ついでに横浜勉強会へのお誘い。 2010/08/11 22:43 もりお

ふむふむ、そんな事情があるのですか。
お教えいただきありがとうございます。

# re: Observerネタを書きました。ついでに横浜勉強会へのお誘い。 2010/08/12 9:26

今年もわんくま横浜たのしそう!
中旬まで確定できないのですがきっとお茶のみに参ります^^

# re: Observerネタを書きました。ついでに横浜勉強会へのお誘い。 2010/08/12 12:46 ちゅき

>怪しげなカード

大阪で外れたため、死ぬ気で取りに行きます。
無いとまともに活動できないし、自分で買うのはo...rz
#某賞は無理っぽそうだし^^;

ということで、後ろからObserverになってます^^/
#これを言いたかっただけ^^;(ちゃんと申し込んでますよー♪)

# re: Observerネタを書きました。ついでに横浜勉強会へのお誘い。 2010/08/12 22:38 επιστημη

> 自分で買うのはo...rz

デスヨネー

> 某賞

おかげさんで自腹切って買ってるのはマウスくらいでしょうか♪
BlueTrackってどーなんです? > ALL

# nXgtvjNmbCzSY 2014/08/28 12:23 http://crorkz.com/

v762JN I'll immediately snatch your rss as I can not find your e-mail subscription link or e-newsletter service. Do you've any? Please allow me know so that I could subscribe. Thanks.

# gAoDBynmNNBHGIZv 2014/09/09 19:51 http://www.arrasproperties.com/4009-e-3rd-st-apt-3

I'd should verify with you here. Which isn't something I usually do! I get pleasure from studying a put up that will make folks think. Additionally, thanks for allowing me to comment!

# BnmBAiyqnQ 2018/08/16 6:17 http://www.suba.me/

WkJ042 to come here and visit more often. Did you hire out a developer to create your theme?

# AoJVcDjsojWaouWXY 2018/08/18 3:24 http://katalogmedik.ru/user/nepalanger85/

I went over this internet site and I believe you have a lot of fantastic information, saved to bookmarks (:.

# DEScxWeBeSxOPNdsOo 2018/08/18 11:06 https://www.amazon.com/dp/B01G019JWM

Keep up the great writing. Visit my blog ?????? (Twyla)

# raaxLtplNXZFMkOVXd 2018/08/23 2:05 http://www.sla6.com/moon/profile.php?lookup=260624

put this information together. I once again find myself spending a lot of time both reading and commenting.

# aRlDUtkhHfSJZ 2018/08/23 4:20 http://metallom.ru/board/tools.php?event=profile&a

I visited many blogs however the audio quality for audio songs current at this web page is in fact fabulous.

# gPVqpEVngcP 2018/08/23 15:04 http://5stepstomarketingonline.com/JaxZee/?pg=vide

What as Happening i am new to this, I stumbled upon this I ave found It absolutely helpful and it has aided me out loads. I hope to contribute & aid other users like its helped me. Good job.

# jtDESTdkHQXrtzHWC 2018/08/23 17:28 http://whitexvibes.com

Really glad I found this great information, thanks

# CMAtQvQhJQeWE 2018/08/23 19:59 https://www.christie.com/properties/hotels/a2jd000

It as hard to come by experienced people in this particular topic, however, you sound like you know what you are talking about! Thanks

# NVhYrNFuqtCq 2018/08/24 3:29 http://filmux.eu/user/agonvedgersed881/

Thanks for sharing this fine write-up. Very inspiring! (as always, btw)

# uAhCwjcmKuv 2018/08/24 21:31 http://bzen.co.kr/index.php?mid=QnA&document_s

Starting with registering the domain and designing the layout.

# NhHWZSPRuYkFLbzE 2018/08/27 21:07 https://www.prospernoah.com

What as up, just wanted to tell you, I loved this article. It was inspiring. Keep on posting!

# bJxlRVBvZHwQX 2018/08/29 22:14 https://www.teawithdidi.org/members/beliefwheel19/

Wow that was unusual. I just wrote an really long comment but after I clicked submit my comment didn at show up. Grrrr well I am not writing all that over again. Anyway, just wanted to say great blog!

# pFbpEkJrywWPY 2018/08/30 3:39 https://youtu.be/j2ReSCeyaJY

Your style is unique compared to other folks I have read stuff from. I appreciate you for posting when you have the opportunity, Guess I will just book mark this site.

# btgWAKiPyoXFwoBFhOG 2018/08/30 21:14 https://seovancouver.info/

IaаАа?б?Т€Т?а?а?аАа?б?Т€Т?аБТ?ll complain that you have copied materials from a different source

# OAIIlNrmHB 2018/08/31 17:51 http://supernaturalfacts.com/2018/08/30/learn-how-

magnificent points altogether, you simply gained a new reader. What might you recommend about your post that you just made a few days in the past? Any certain?

# wrSuJQDkHtPa 2018/09/01 18:22 http://prodonetsk.com/users/SottomFautt900

This video post is in fact enormous, the echo feature and the picture feature of this video post is really awesome.

# zYAuOnsXOFmkfmV 2018/09/01 20:52 http://metallom.ru/board/tools.php?event=profile&a

magnificent issues altogether, you simply won a new reader. What might you recommend in regards to your submit that you simply made a few days ago? Any positive?

# HXcbftBfWZCVtEpW 2018/09/01 23:27 http://xn--b1afhd5ahf.org/users/speasmife281

Thanks-a-mundo for the article post.Much thanks again. Want more.

# HctTJyxyIEmaZsoY 2018/09/03 17:15 https://www.youtube.com/watch?v=4SamoCOYYgY

wonderful challenges altogether, you simply gained a logo reader. What would you suggest about your publish that you just made some days ago? Any sure?

# hwFRXDXvaWBLxtG 2018/09/03 21:47 https://www.youtube.com/watch?v=TmF44Z90SEM

What as Going down i am new to this, I stumbled upon this I ave found It absolutely useful and it has aided me out loads. I am hoping to contribute & help other customers like its helped me. Good job.

# gUjGpisXKIXy 2018/09/04 0:26 http://sunnytraveldays.com/2018/08/31/membuat-perm

Muchos Gracias for your article. Really Great.

# YkioubnQJJJPBeUlbjJ 2018/09/05 4:13 https://brandedkitchen.com/product/vremi-wooden-sp

Major thankies for the post.Thanks Again. Much obliged.

# VbJDPDOAjJXAJuHh 2018/09/05 19:20 http://congressdigital.com/story.php?title=bigg-bo

Thanks so much for the blog article.Much thanks again. Awesome.

# unPYiKBXDZvIkFXhpw 2018/09/06 19:11 http://staktron.com/members/forkshare9/activity/14

wow, awesome post.Really looking forward to read more. Really Great.

# AKFUHlPmIKrDeop 2018/09/10 18:45 https://www.youtube.com/watch?v=kIDH4bNpzts

Wow, amazing blog layout! How long have you been blogging for? you make blogging look easy. The overall look of your web site is fantastic, let alone the content!

# rnDcsJLvsxvqMBv 2018/09/10 20:55 https://www.youtube.com/watch?v=5mFhVt6f-DA

Wohh just what I was searching for, thanks for putting up.

# IYCeEQUITICtjAM 2018/09/12 16:44 https://www.wanitacergas.com/produk-besarkan-payud

plastic bathroom faucets woud eaily break compared to bronze bathroom faucets-

# ufXOSVqvhEpCkkCV 2018/09/12 19:57 http://sunnytraveldays.com/2018/09/11/buruan-dafta

Your style is really unique compared to other people I ave read stuff from. Many thanks for posting when you ave got the opportunity, Guess I will just bookmark this web site.

# hTOsMBcODYa 2018/09/12 21:34 https://www.youtube.com/watch?v=TmF44Z90SEM

Thanks for sharing, this is a fantastic blog.Much thanks again.

# jjVuIuScVAGTqA 2018/09/13 0:44 https://www.youtube.com/watch?v=EK8aPsORfNQ

see if there are any complaints or grievances against him.

# iZwYgcWAyvVKSKrT 2018/09/14 3:18 http://animesay.ru/users/loomimani709

It'а?s really a great and helpful piece of information. I am satisfied that you simply shared this helpful info with us. Please stay us up to date like this. Thanks for sharing.

# pNBxrPNrSGAhQdFhxb 2018/09/14 20:53 http://empics24.de/gbverlach/gaestebuch.php

I think this is a real great post.Really looking forward to read more. Great.

# mNgeRtYaUQPuTgOdFF 2018/09/15 0:34 https://1drv.ms/t/s!AlXmvXWGFuIdhaAKcltv4B0wGF2ChQ

Only wanna input that you have a very decent website , I like the design it actually stands out.

# rknoaOKZHT 2018/09/15 4:43 https://disqus.com/home/channel/new/discussion/cha

There as definately a great deal to learn about this issue. I really like all of the points you ave made.

# GwQzGlfljvvCtw 2018/09/19 23:36 https://wpc-deske.com

information with us. Please stay us up to date like this.

# yqkVzaLxMvBreB 2018/09/20 2:28 https://victorspredict.com/

We stumbled over here from a different web address and thought I might as well check things out. I like what I see so now i am following you. Look forward to going over your web page again.

タイトル  
名前  
URL
コメント