東方算程譚

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

記事カテゴリ

書庫

日記カテゴリ

「C++テンプレートテクニック」もくじ

隠しておくことじゃないし。
Chapter1-3が僕、それ以降がアキラくん。
なので実質アキラくんの本なのね♪
絶賛予約受付中、よろしくおねがいしまーす

Chapter 1 テンプレート前史
1-1 C言語をベースとしたC++
 要素を選ばないSmalltalk流コンテナの実装
1-2 #defineマクロによるテンプレートもどき
1-3 Chapter 1のまとめ

Chapter 2 テンプレートの基礎
2-1 テンプレートとその種類
 関数テンプレート
 クラステンプレート
 メンバテンプレート
2-2 明示的なインスタンス化
2-3 デフォルトテンプレート引数
2-4 テンプレート引数に整数値を指定する
 テンプレート引数にポインタを与える
2-5 コンストラクタテンプレート
2-6 Two-Phase Lookupとtypename、templateキーワード
 typenameキーワード
 template限定子
2-7 特殊化
 部分特殊化
 呼び出される関数の選ばれ方
2-8 テンプレート・テンプレート・パラメータ
2-9 Chapter 2のまとめ

Chapter 3 Generic Programmingの基礎
3-1 標準ライブラリの欠如
3-2 STLとGeneric Programming
 関数オブジェクト
3-3 はじめてのGeneric Programming
3-4 ヘルパ関数による型マッチング
3-5 タグ・ディスパッチ
3-6 パラメータ化継承
3-7 Chapter 3のまとめ

Chapter 4 テンプレートメタプログラミング
4-1 テンプレートメタプログラミングとは
4-2 再帰テンプレート
 テンプレートを使用しないプログラミング
 メタ関数
 factorialをコンパイル時に計算する
 メタ関数の応用例
4-3 型を操作するメタ関数
 型を修飾する
 型修飾を外す
4-4 複数の戻り値を持つメタ関数
4-5 コンパイル時if文
4-6 高階メタ関数
 高階関数とは
 メタ関数を受け取るメタ関数
4-7 チューリング完全
4-8 Chapter 4のまとめ

Chapter 5 SFINAE
5-1 SFINAEの基礎
5-2 Range-base STLアルゴリズム
 begin()/end()の汎用化
 イテレータ型の汎用化
5-3 SFINAEとsizeof
 型特性メタ関数とは
 SFINAE を使用した型特性メタ関数
5-4 型特性によるオーバーロード
5-5 Chapter 5のまとめ

Chapter 6 ポリシー
6-1 ポリシーとポリシークラス
6-2 ポリシークラスのデフォルト指定
6-3 カスタマイズ性の高いクラス設計
6-4 ポリシーのいろいろな設計
 static メンバ
 インスタンスメンバ
 継承
 テンプレートパラメータのデフォルト引数
 typedefによる名前付け
 テンプレート・テンプレート・パラメータ
 複数の設計方式を組み合わせる
6-5 C++標準ライブラリにおけるポリシー
 std::allocator
 std::map
6-6 Chapter 6のまとめ

Chapter 7 Type Erasure
7-1 Type Erasure とは
7-2 Type Erasureの実現方法
 void*
 仮想関数テーブルを自作する方法
 非テンプレート基本クラスとテンプレート派生クラス
7-3 Boostにおける使用例
boost::shared_ptr
boost::any
boost::function
 Type Erasureを使用したfunctionの実装
 タグ・ディスパッチにするオーバーロード
 7-4 Chapter 7のまとめ

Chapter 8 CRTP
8-1 CRTPの基本
 仮想関数を使用した動的な多態性
 CRTPを使用した静的な多態性
8-2 Template Methodパターンの実装
 静的なTemplate Methodパターンの実装
8-3 比較演算子の自動生成
 Barton-Nackman trick
 Barton-Nackman trick の問題点
 ADL
8-4 Chapter 8のまとめ

Chapter 9 テンプレート型変換演算子
9-1 型変換演算子とは
9-2 operator bool()
 foreach文を作成する
9-3 戻り値の型によるオーバーロード
9-4 戻り値型の推論
9-5 lexical_cast
9-6 Chapter 9のまとめ

Chapter 10 Expression Template
10-1 Expression Templateとは
10-2 一時オブジェクトのコスト
10-3 Expression Templateの手法
10-4 演算クラスの設計を見直す
10-5 一時式の問題と対処法
10-6 Chapter 10のまとめ

Chapter 11 Extension Member Function
11-1 Extension Member Functionとは
11-2 ヘルパ関数
11-3 拡張メンバ
 operator┃
 std::tr1::result_ofメタ関数
11-4 vector┃shrink_to_fit
11-5 Range-baseライブラリ
 reversedの実装
 result_of の戻り値の型をどう書くか
 operator┃の汎用化
 イテレータアダプタ
11-6 Rangeアダプタの実装例
 filtered
 transformed
 front
 copied
11-7 Boost.Foreachと組み合わせる
11-8 Boost.Lambdaと組み合わせる
11-9 Range-baseライブラリの紹介
11-10 Chapter 11のまとめ

Chapter 12 C++0xにおけるテンプレート
12-1 C++0xとテンプレート
 連続した山カッコの問題改善
 関数テンプレートにおけるデフォルトテンプレート引数
 ローカル型と無名型をテンプレート引数として使用可能
 Template Aliases
 一般化された定数式
 コンパイル時アサート
 可変引数テンプレート
 初期化子リスト
 型推論
 コンセプト
 コンセプトマップ
 Range-base for文
12-2 C++0xの標準ライブラリ
 日付・時間ライブラリ
 スレッドライブラリ
 新たなコンテナ
 新たなアルゴリズムの追加
 配置挿入(Placement Insert)
12-3 Chapter 12のまとめ

投稿日時 : 2009年4月14日 21:46

コメントを追加

# re: 「C++テンプレートテクニック」もくじ 2009/04/14 22:59 倉田 有大

ハァハァ
C++使ってたら、すげーほしいw

>C++0xにおけるテンプレート

うわーお。

>スレッドライブラリ

ど、どんなのだー

C++またやりたくなってきたな~
C#&WPFで出番が><

# re: 「C++テンプレートテクニック」もくじ 2009/04/15 10:08 n

思ってたより内容が濃いそ~

# re: 「C++テンプレートテクニック」もくじ 2009/04/15 10:23 επιστημη

えぇ、"こゆい"っすよ。
トリッキー/アクロバティックなワザが
みっしり詰まってます。

# re: 「C++テンプレートテクニック」もくじ 2009/04/15 10:55 インドリ

あかん。涎が出てきた。
早く届かないかなー♪
待ちきれないぃー

# re: 「C++テンプレートテクニック」感想 2009/04/26 22:21 n

今日届きました。
早速、読ませて頂いています。
現時点で、chapter 5 まで読み終えました。

それとなくは知っている内容だったので、すぐに理解できました。
chapter 3 のテンプレートコンストラクタで friend にしないといけないってのは、一瞬「え?」と思いました。
考えてみれば、 Point<int> と Point<long>はまったく別物なんだから、当たり前のこと・・・

Range-baseのアルゴリズムの作り方も「なるほど」と感心させられました。

# re: 「C++テンプレートテクニック」もくじ 2009/04/26 22:36 επιστημη

わざわざご感想ありがとうございます。
テンプレートにまつわるテクニックについて
はあらかた網羅していることと思います。
「その手があったか!」と膝を打っていただければ幸甚。

# michael kors bags on sale 2014/06/14 3:04 xvrlounwouy@michaelkorsoutletsalemk.com

Michael Kors Handbags is so different from so many others, just because it looks great and is quite practical. Awesome style and the great look of this bag is part of the reason why women absolutely want it so much. Cheap Michael Kors Handbags Outlet now will be your first choice if you are looking for fashion accessory for decorating yourself!

タイトル  
名前  
URL
コメント