-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path2011.html
223 lines (220 loc) · 171 KB
/
2011.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
<!doctype html><!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]--><!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]--><!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]--><!--[if gt IE 8]><!--><html class=no-js lang=ja itemscope itemtype=http://schema.org/WebPage> <!--<![endif]--> <head><!-- Google tag (gtag.js) --><script async src="https://www.googletagmanager.com/gtag/js?id=G-N5WF8TJCNB"></script><script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-N5WF8TJCNB');
</script><meta charset=UTF-8><title>BoostCon 2011 - boostjp</title><meta name=viewport content="width=device-width,initial-scale=1"><meta name=keywords content="
C++,Boost,リファレンス,ドキュメント,
"><meta name=title content="BoostCon 2011 - boostjp"><meta itemprop=name content="BoostCon 2011 - boostjp"><meta property=og:title content="BoostCon 2011 - boostjp"><meta property=og:url content=https://boostjp.github.io/boostcon/2011.html><meta property=og:site_name content="boostjp : Boost日本語情報サイト"><meta property=og:type content=article><meta property=og:description content="- Phoenix V3 –An Overview"><meta name=twitter:card content=summary><meta name=twitter:title content="BoostCon 2011 - boostjp"><meta name=twitter:url content=https://boostjp.github.io/boostcon/2011.html><meta name=twitter:description content="- Phoenix V3 –An Overview"><link rel=alternate type=application/atom+xml title=Atom href=https://boostjp.github.io/rss.xml><link rel=stylesheet href=https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css><link rel=stylesheet href=../static/pygments/default.css><!-- <link rel="stylesheet" href="../static/css/root.css"> --><script src=https://code.jquery.com/jquery-2.1.1.min.js></script><script src=https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js></script><!-- <script src="https://platform.twitter.com/widgets.js"></script> --><!-- <script src="../static/js/root.js"></script> --><!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]--><script>
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/,'js');
</script><style type=text/css>
.tree{
-webkit-border-radius:4px;
-moz-border-radius:4px;
border-radius:4px;
-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);
-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);
box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);
background-color:#fbfbfb;
border:1px solid #999;
margin-bottom:10px;
/*max-height:300px;*/
/*min-height:20px;*/
overflow-x:scroll;
padding:3px
}
.tree ul {
padding-left:32px
}
.tree > ul{
padding-left:0px
}
.tree a{
display:inline;
overflow:hidden;
text-overflow:ellipsis;
width:90%
}
.tree li{
list-style-type:none;
margin:0;
padding:4px 0 0 2px;
position:relative
}
.tree li::before,.tree li::after{
content:'';
left:-20px;
position:absolute;
right:auto
}
.tree li::before{
border-left:1px solid #999;
bottom:50px;
height:100%;
top:0;
width:1px;
-webkit-transition:"border-color 0.1s ease 0.1s";
-moz-transition:"border-color 0.1s ease 0.1s";
-o-transition:"border-color 0.1s ease 0.1s";
transition:"border-color 0.1s ease 0.1s"
}
.tree li::after{
border-top:1px solid #999;
height:20px;
top:13px;
width:23px;
-webkit-transition:"border-color 0.1s ease 0.1s";
-moz-transition:"border-color 0.1s ease 0.1s";
-o-transition:"border-color 0.1s ease 0.1s";
transition:"border-color 0.1s ease 0.1s"
}
.tree li span.treespan{
-moz-border-radius:5px;
-webkit-border-radius:5px;
border:1px solid #999;
border-radius:5px;
display:inline-block;
line-height:14px;
padding:2px 4px;
text-decoration:none;
-webkit-transition:color .2s ease .1s,background-color .2s ease .1s,border-color .3s ease .2s;
-moz-transition:color .2s ease .1s,background-color .2s ease .1s,border-color .3s ease .2s;
-o-transition:color .2s ease .1s,background-color .2s ease .1s,border-color .3s ease .2s;
transition:color .2s ease .1s,background-color .2s ease .1s,border-color .3s ease .2s
}
.tree li.parent_li>span.treespan{cursor:pointer}
.tree li.parent_li>span.treespan:hover{
background-color:#df8505;
border:1px solid #c67605;
color:#fff
}
.tree li.parent_li>span.treespan:hover+ul li::after{border-top-color:#f89406}
.tree li.parent_li>span.treespan:hover+ul li::before{border-left-color:#f89406}
.tree li.parent_li>span.treespan:hover+ul li span.treespan{
background:#fddfb3;
border:1px solid #faa937;
color:#000
}
.tree li:last-child::before{height:13px}
.tree>ul>li::before,.tree>ul>li::after{border:0}
.google-search {
width: 250px;
margin-top: 2px;
}
.google-search-result .gsc-control-cse {
padding: 0px;
border: 0px;
}
/*
.google-search-result .gsc-adBlock {
display:none !important;
visibility:hidden !important;
}
.google-search-result .gsc-adBlockVertical {
display:none !important;
visibility:hidden !important;
}
*/
code {
color: #000000;
}
a code {
color: #428bca;
}
.content-body > h1:first-child {
margin-top: 0px;
}
.content-body h2 {
border-left: solid 8px skyblue;
padding-left: 5px;
border-bottom: solid 2px skyblue;
}
.edit {
-webkit-border-radius:4px;
-moz-border-radius:4px;
border-radius:4px;
border:1px solid #999;
margin: 5px;
padding: 3px;
}
.history {
-webkit-border-radius:4px;
-moz-border-radius:4px;
border-radius:4px;
border:1px solid #999;
margin: 5px;
padding: 3px;
}
ol.breadcrumb {
margin-bottom: 5px;
}
.footer {
text-align: center;
}
.footer.navbar {
min-height: 0;
margin-top: 20px;
margin-bottom: 0px;
padding-top: 10px;
padding-bottom: 10px;
}
div.identifier-type {
float: left;
}
div.header {
float: right;
text-align: right;
}
h1 .namespace {
font-size: 14px;
}
h1 .class {
}
h1 .cpp {
font-size: 14px;
}
.tree .cpp-sidebar {
font-size: 10px;
}
pre .err { border: 0px } /* Error */
.syntax pre .err { border: 0px } /* Error */
</style><script>
function tree_onclick(e) {
var children = $(this).parent('li.parent_li').find(' > ul > li');
if (children.is(':visible')) {
children.hide(100);
$(this)
.attr('title', 'Expand this branch')
.find(' > i')
.addClass('glyphicon-plus')
.removeClass('glyphicon-minus');
}
else {
children.show(100);
$(this)
.attr('title', 'Collapse this branch')
.find(' > i')
.addClass('glyphicon-minus')
.removeClass('glyphicon-plus');
}
e.stopPropagation();
}
</script></head> <body> <header> <nav class="navbar navbar-default" role=navigation> <div class=container-fluid> <div class=navbar-header> <button type=button class="navbar-toggle collapsed" data-toggle=collapse data-target=#navbar-collapse> <span class=sr-only>Toggle navigation</span> <span class=icon-bar></span> <span class=icon-bar></span> <span class=icon-bar></span> </button> <a class=navbar-brand href=../index.html> <div class="title-wrapper clearfix"> <div class=title>boostjp : Boost日本語情報サイト</div> </div> </a> </div> <div class="collapse navbar-collapse" id=navbar-collapse> <ul class="nav navbar-nav navbar-right"> <li> <div class=google-search> <script>
(function() {
var cx = '013316413321391058734:dma_peph4n0';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
'//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script> <gcse:searchbox></gcse:searchbox> </div> </li> <li> <a href=https://github.com/boostjp/site>GitHub Project</a> </li> </ul> </div> </div> </nav> </header> <main id=main role=main> <div class=container-fluid> <div class=row> <div class="col-sm-9 col-sm-push-3" itemscope itemtype=http://schema.org/Article> <div class=row> <div class="col-sm-12 google-search-result"> <gcse:searchresults></gcse:searchresults> </div> </div> <div class=row> <div class="col-sm-12 content-header"> <ol class=breadcrumb> <li itemscope itemtype=http://www.schema.org/SiteNavigationElement> <span> <a href=../index.html itemprop=url> <i class="glyphicon glyphicon-home"></i> </a> </span> </li> <li itemscope itemtype=http://www.schema.org/SiteNavigationElement> <span> <a href=../boostcon.html itemprop=url> <span itemprop=name>BoostCon</span> </a> </span> </li> <li class=active itemscope itemtype=http://www.schema.org/SiteNavigationElement> <span> <span itemprop=name>BoostCon 2011</span> </span> </li> </ol> </div> </div> <div class=row> <div class="col-sm-12 edit-button"> <p class=text-right><small> 最終更新日時: <span itemprop=datePublished content=2022-06-05T23:47:16> 2022年06月05日 23時47分16秒 </span> <br> <span itemprop=author itemscope itemtype=http://schema.org/Person> <span itemprop=name>Koichi Murase</span> </span> が更新 </small></p> <p class=text-right> <a class=history target=_blank href=https://github.com/boostjp/site/commits/master/boostcon/2011.md> <span class="glyphicon glyphicon-time"></span>履歴 </a> <a class=edit target=_blank href=https://github.com/boostjp/site/edit/master/boostcon/2011.md> <span class="glyphicon glyphicon-pencil"></span>編集 </a> </p> </div> </div> <div class=row> <div class="col-sm-12 content-body"> <h1 itemprop=name><span class=token>BoostCon 2011</span></h1> <div itemprop=articleBody><p><a href=http://boostcon.boost.org/program/sessions/ target=_blank>http://boostcon.boost.org/program/sessions/</a></p> <h2>セッション資料</h2> <ul> <li><a href=https://github.com/boostcon/2011_presentations target=_blank>BoostCon 2011 Presentations</a></li> </ul> <h2>翻訳プロジェクト</h2> <p>BoostCon 2011の資料を翻訳しています。</p> <p>翻訳したデータは各自でどこかに公開(たとえばGoogle Docs、slideshareなど)し、リンクを貼ってください。</p> <p>参加者は常時募集しています。</p> <ul> <li><a href=http://www.slideshare.net/eldesh/proposed-boost-btreelibraryja target=_blank>The Proposed Boost B-tree Library(eldesh)</a></li> <li><a href=http://www.slideshare.net/faithandbrave/boostsimd target=_blank>Practical SIMD acceleration with Boost.SIMD(akira)</a></li> </ul> <h2>セッションリスト</h2> <ul> <li><a href=#ready-fo-ipv6>IPv6の準備はできてる?</a></li> <li><a href=#utree>万能ツリーによるAST構築</a></li> <li><a href=#mpi-openmp>自動ハイブリッドMPI+OpenMPコード生成</a></li> <li><a href=#boost-generic>Boost.Generic: コンセプトを使用しないコンセプト</a></li> <li><a href=#boost-infrastructure>Boostインフラストラクチャ ワークショップ</a></li> <li><a href=#boost-process>Boost.Process:C++によるプロセス管理</a></li> <li><a href=#boost-units>Boost.Units</a></li> <li><a href=#cpp0x-status>C++0xの進行状況</a></li> <li><a href=#boost-asio-extension>Boost.Asio拡張の作成</a></li> <li><a href=#skoot>Skootによる設計の旅。ピア指向ジェネリックネットワークライブラリ</a></li> <li><a href=#geneva>Genevaライブラリによる分散パラメトリック最適化</a></li> <li><a href=#fast-numerical-computation>C++による高速数値計算 : 遅延コード生成(LzCG)のためのExpression Templateとその先へ</a></li> <li><a href=#funding-boost>国内、国際的な研究プログラムや基金を通じた、Boost開発の資金調達について</a></li> <li><a href=#future-of-boost>Boostの未来 - パネルディスカッション2011</a></li> <li><a href=#range-unicode>Rangeのためのジェネリックな変換と分割 : Unicodeのためのソリューション</a></li> <li><a href=#proto-edsl-design>Protoを楽しむ - C++ EDSLデザインのハンズオンチュートリアル</a></li> <li><a href=#haskell-pseudo-cpp>Haskell - C++テンプレートメタプログラミングのための擬似言語</a></li> <li><a href=#intel-tm>IntelのC++ Software Transactional Memory CompilerとC++でのトランザクション言語構築のドラフト仕様について</a></li> <li><a href=#mpl-graph>MPL.Graphの紹介</a></li> <li><a href=#lock-free-data-structure>ロックフリープログラミング パート2:データ構造</a></li> <li><a href=#cell-broadband>Boostベースの並列通信ライブラリによる、セルブロードバンドエンジンのアーキテクチャをマスターする</a></li> <li><a href=#odb-boost>ODBとBoostによるオブジェクトリレーショナルマッピング</a></li> <li><a href=#gcc-plugins>GCCプラグインによるC++解析</a></li> <li><a href=#phoenix-v3>Phoenix V3の概要</a></li> <li><a href=#boost-simd>Boost.SIMDを用いる実用的なSIMDアクセラレーション</a></li> <li><a href=#real-workd-spirit-qi>現実世界におけるSpirit.Qi</a></li> <li><a href=#sweep-line-algorithm>平面上の点、線分、多角形中間軸のボロノイ図における掃引線アルゴリズム</a></li> <li><a href=#b-tree>Boostに提案されたB木ライブラリ</a></li> <li><a href=#think-async>非同期について考える : Boost.Asioを使用したアプリケーション設計</a></li> <li><a href=#thread-shared-variables>C++0xのスレッドと共有変数</a></li> <li><a href=#xml-processing>C++のマルチパラダイムデザインによるネイティブXML処理</a></li> <li><a href=#why-cpp0x-is-awesomest-network-programming>C++0xはなぜネットワークプログラミングのための、最高の中の最高の言語なのか</a></li> </ul> <h2><a href=#ready-fo-ipv6 id=ready-fo-ipv6>IPv6の準備はできてる?</a></h2> <ul> <li>Are You Ready for IPv6?</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#christopher-kohlhoff target=_blank>Christopher Kohlhoff</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track II 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/wed/IPv6.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/wed/IPv6.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/are-you-ready-for-ipv6-5364812 target=_blank>http://blip.tv/boostcon/are-you-ready-for-ipv6-5364812</a></li> </ul> <p>それはニュースの中にあった:IPv4アドレス空間が枯渇する。<br> その解決策は新たなインターネット・プロトコル、IPv6である。IPv6は長い間存在していたが、その使用を命じた政府機関のためのコードを開発しない限り、それについて今まで心配する必要がなかった。</p> <p>これは一夜の変更では済まないだろう。<br> IPv4はまだ数年は使われるだろうし、ネットワークアプリケーションは両方のプロトコルをサポートしなければならないだろう。</p> <p>この発表は、ネットワーク開発者が知る必要のあるIPv6の基本をカバーする。</p> <p>Boost.AsioのIPv6のサポートを見て回り、独立したBoost.Asioベースのネットワークアプリケーションプロトコルを独立させること、およびIPv6を用意するためのいくつかの設計戦略について議論する。</p> <h2><a href=#utree id=utree>万能ツリーによるAST構築</a></h2> <ul> <li>AST Construction with the Universal Tree</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#bryce-lelbach target=_blank>Bryce Lelbach</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track I 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/fri/utree_talk.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/fri/utree_talk.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/ast-construction-with-the-universal-tree-5266608 target=_blank>http://blip.tv/boostcon/ast-construction-with-the-universal-tree-5266608</a></li> </ul> <p>Boost.Spiritのコードベースに最近追加された<code>utree</code>は、抽象構文木を表現するための設計されたジェネリックなデータ構造である。QiとKarmaへのバインディングは、Boost.Spiritによるパーサー、ジェネレータ開発の強力なツールとなる。この発表では、抽象構文木を構築、操作するための、パース/ジェネレートの4つのユースケースを示す:XML、シンボル式(S式)、JSONとCライクなソースコード。</p> <p>Spiritによる<code>utree</code>の統合の詳細、および<code>utree</code>中心のSpiritパーサー/ジェネレータの記述について議論する。さらに、他の内部表現(XMLのためのDOMツリー、JSONオブジェクトのための連想配列、小さなCソースコードのシンプルなVMバイトコード)に、utree ASTをコンパイルする設計手本をカバーする。</p> <h2><a href=#mpi-openmp id=mpi-openmp>自動ハイブリッドMPI+OpenMPコード生成</a></h2> <ul> <li>Automatic Hybrid MPI+OpenMP Code Generation</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#joel-falcou target=_blank>Joel Falcou</a>, <a href=http://boostcon.boost.org/program/speakers#khaled-hamidouche target=_blank>Khaled Hamidouche</a></li> <li>形式 : 講義</li> <li>トラック : Track II 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/bsppp.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/bsppp.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/automatic-hybrid-mpi-openmp-code-generation-5349961 target=_blank>http://blip.tv/boostcon/automatic-hybrid-mpi-openmp-code-generation-5349961</a></li> </ul> <p>マルチプロセッサー市場の出現は、大規模並列コンピュータのアーキテクチャを根本的に変えた。何千ものスレッドによるハイパフォーマンスコンピューティングプラットフォームが展開されている。このコンテキストでは、ハイブリッドなMPI + OpenMPアプローチの使用はそのようなアーキテクチャにふさわしいプログラミングモデルと見なされる。しかし、パフォーマンスの改善が示される場合もあれば、示されない場合もある。ハイブリッドなMPIおよびOpenMPアプリケーションのパフォーマンスに影響している要因は多く、複雑で、相互の関係にある。</p> <ul> <li>MPI通信効率 : アプリケーションは、MPI通信の種類(一対一、集団)、メッセージサイズ、接続や帯域といったネットワークの問題に関係がある。</li> <li>OpenMP並列効率 : クリティカルセクションプリミティブを使用すると、OpenMPスレッド管理のオーバーヘッドやfalse sharingによってパフォーマンスが悪化する。</li> <li>MPIとOpenMPの相互作用 : MPI通信部分の内部のロードバランシング、および使用されていないスレッドの問題は、並列度を低下させる。</li> </ul> <p>両方のコードを書くことは、普通のHPCアプリケーションよりも専門技術の高いレベルを必要とするかもしれない。</p> <p>したがって、これらの新しいシステムへの効率的な利用は、重要な挑戦である。また、アプリケーションに責任を負う科学者およびエンジニアは、一般に、あまりHPCの専門家ではなく、通常、彼らはコードに新しい変化を持ち出すことや新たなプログラミングパラダイムを学ぶことはしたがらない。彼らは、効果的な自動並列化ツールとライブラリといった点での解決策を必要としている。</p> <p>この発表では、我々は2つの、相互関係のある異なるレベルの問題を解決を試みる。</p> <p>まず我々はバルク同期並列(Bulk Synchronous Parallelism : BSP)パラダイムをすぐに導入し、それがいつ、そしてなぜ、ハイブリッドシステムの適当なプログラミングモデルと見なすことができるかを解説する。</p> <p>その後、我々はBSP++を紹介する。これは、BSPモデルに基づいた並列アプリケーションの迅速で容易な設計を可能にするBoostを用いたC++ライブラリである。我々は、BSP API、Lambda、PhoenixやMPIを含む、一般的に用いられるBoostライブラリに対するその相互作用、いくつかの実装詳細について記述し、いくつかの例を示す。</p> <p>最後に我々は、BSP++、Boost.Spirit、および Clang/LLVMによって構築された並列のプログラミングフレームワークであるBSPGenを紹介する。BSPGenは、XMLで書かれた小さなアプリケーションの記述と、並列化されていないCもしくはC++の関数から、実行時コストの先行評価とほぼ最適なOpenMPとMPIの間のバランスを決定するための配置空間の小さな探索に基づく、完全はハイブリッド並列のアプリケーションを生成することができる。実装詳細と例を提供する。</p> <h2><a href=#boost-generic id=boost-generic>Boost.Generic: コンセプトを使用しないコンセプト</a></h2> <ul> <li>Boost.Generic: Concepts without Concepts</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#matt-calabrese target=_blank>Matt Calabrese</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track I 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/Boost.Generic.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/Boost.Generic.pdf</a></li> <li>発表ビデオ : coming soon...</li> </ul> <p>コンセプトはおそらく、C++0xの中で最も望ましい機能のうちの一つだった。それによってプログラマはとくに、コメントではなくコードによるコンセプトの直接指定、コンセプトベースオーバーロード、テンプレートエラーメッセージの改善を含む、ジェネリックプログラミングの直接的な言語サポートを約束された。2009年のworking paperからのコンセプトの削除で、多くのプログラマが、将来のC++標準に、かなりの失望を残すことになった。</p> <p>しかし、10年以上の間、直接の言語サポートなしでC++プログラマは、Boost Graph Libraryを含む非常に強力なジェネリックライブラリをなんとか作ることができた。Boost Concept Check Libraryは、コンセプトの必要条件を検証するプロセスを実現可能にした。しかし、C++0xでコンセプトを削除したまま、事態をさらに1ステップ進めることは可能である。努力し、ライブラリはよりシンプルな、より特定のコンパイル時アサート、コンセプト要件を表現し、チェックするより強力な方法、ユーザー指定された自動で明示的なコンセプトマップのための設備と、ユーザーがコンセプトを書くためのコンセプトベースな関数テンプレートのオーバーロードを書く方法、人々が言語機能に期待するかもしれないものに驚くほど近いユーザビリティなども全てを提供することができ、提供する。</p> <p>この話は(レビュー前の)Boost.Genericへの入門である。</p> <p>コンセプト、コンセプトマップ、コンセプトベース関数テンプレートオーバーロードを作成するためのC++0xライブラリであり、Boost Concept Check Libraryを潜在的に置き換える、もしくは賞賛することを意図する。発表は、ライブラリの歴史、および短い入門に続き、パラダイムに慣れていない人々のためのジェネリックプログラミングの基本を最初に簡潔にカバーし、ライブラリを可能にするための根底にあるトリックへの導入に続く。その後、聴衆はBoost.Genericの基本的な使用法を示され、すでに提供されているコンセプトの要件チェックのためのコンパイル時アサートを指定する方法、それらのコンセプトに単純なコンセプトマップを作成する方法と、それら自身のアルゴリズムのためにコンセプトベースのオーバーロードを書く方法を示す。最後に、聴衆はBoost.Genericによる標準コンセプトの実装を通じて、標準との比較を見て回るだろう。</p> <p>「Boost.Generic : コンセプトのないコンセプト」は、ライブラリ開発者、ユーザーの両方のためを意図する。それはC++の任意の合理的な量の経験を持ったプログラマにアクセス可能であるに違いない。基本アイデアは話の最初の数分でカバーされるが、ジェネリックプログラミングについての熟知が高く推奨される。</p> <h2><a href=# id=boost-infrastructure>Boostインフラストラクチャ ワークショップ</a></h2> <ul> <li>Boost Infrastructure Workshop</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#dave-abrahams target=_blank>Dave Abrahams</a></li> <li>形式 : ワークショップ</li> <li>トラック : Track I 2011</li> </ul> <p>Boostのコードとコミュニティがあったこと、あり続けたことで大成功した。しかし、操作性において我々のcode baseと同じ割合では発展していない。テストはより速くなりえる、インストールはより容易になりえる、ドキュメントの生成はより賢くなりえる、レビューはより多くの参加を得ることができ、そしてライブラリの維持はより楽しくなりえる。何年もの間、我々はこれらの問題に対処する方法について話したが、しかし我々は実際に変化をもたらすために合意と推進力を発生させられなかった。このワークショップは、これらに正面から何かをするチャンスだ。</p> <p>我々は方針を作成するために毎日90分間会合し、ツールを作成し、次の10年を通じてBoostの進化をサポートすることができるWebサービスを準備した。具体的なゴールは、カンファレンス参加者との間でのプロトタイプと有用な改善の実装で、より広いコミュニティの合意を獲得し、BoostConのあとすぐにBoostに採用されるされることである。我々には一週間しかない、したがって、生産力を最大限にするために、関心ある個々のトピックの小さなグループで活動する。Boostが採択することができるという方向へ率いることを保証するために、いくつかの短い投票を行い、その週を通じてBoostのメーリングリストでフィードバックを求めるだろう。</p> <p>十分なBoostモデレータおよびリリースマネージャー達は、カンファレンスに続く数ヶ月で、受け取ったアイデアを前身させるためにBoostConに出席することを計画する。</p> <h2><a href=#boost-process id=boost-process>Boost.Process : C++によるプロセス管理</a></h2> <ul> <li>Boost.Process: Process management in C++</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#boris-schaeling target=_blank>Boris Schaeling</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track II 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/fri/Boost.Process.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/fri/Boost.Process.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/boost-process-process-management-in-c-5368233 target=_blank>http://blip.tv/boostcon/boost-process-process-management-in-c-5368233</a></li> </ul> <p>Boost.Process はシステムのプロセス管理のためのライブラリである。これはシェルコマンドの実行や、子プロセスの生成、子プロセスに対する環境変数あるいは入出力ストリームの設定、子プロセスとの同期・非同期での通信、そして子プロセス終了の待機(あるいは強制終了)に使うことができる。</p> <p>発表パートではBoost.Processの進歩、設計上の決定、改良点に焦点を当てる。チュートリアルパートではBoost.Processが提案するいくつかのツールと、それらがどのようにプロセス管理で使われるかを説明する。</p> <h2><a href=#boost-units id=boost-units>Boost.Units</a></h2> <ul> <li>Boost.Units</li> <li>スピーカー :<a href=http://boostcon.boost.org/program/speakers#steven-watanabe target=_blank>Steven Watanabe</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track II 2011</li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/boost-units-5364809 target=_blank>http://blip.tv/boostcon/boost-units-5364809</a></li> </ul> <p>Boost.Units はコンパイル時次元解析、単位変換のための自由度の高いライブラリである。これは、ユーザーがある単位の量を表現すると捉えた値の作成、無意味な操作の禁止、必要な場面での変換の適用によりプログラミングエラーを軽減するために設計された。</p> <h2><a href=#cpp0x-status id=cpp0x-status>C++0xの進行状況</a></h2> <ul> <li>C++0x Progress and Status</li> <li>スピーカー: <a href=http://boostcon.boost.org/program/speakers#michael-wong target=_blank>Michael Wong</a></li> <li>形式: レクチャー</li> <li>トラック: I 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/mon/cpp0x_overview.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/mon/cpp0x_overview.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/c-0x-progress-and-status-5349952 target=_blank>http://blip.tv/boostcon/c-0x-progress-and-status-5349952</a></li> </ul> <p>C++0xの批准を今年にひかえ、BoostCon2010での更新から(2010-現在)議論の的になっている問題や、これまでの批准の進捗、前回の更新から追加されたさまざまな新機能について詳細を述べるとともに、巻き起こった議論について、またその問題をどのように解決しようとしたかについて、1.5時間頂いてレヴューを行なう。</p> <p>話者は、長年、IBMでカナダのC++標準化委員会のメンバーを務めてきた者だ。中程度のC++の知識がある者を対象にしているが、もちろん、どなたでも聴講可能である。</p> <h2><a href=#boost-asio-extension id=boost-asio-extension>Boost.Asio拡張の作成</a></h2> <ul> <li>Creating Boost.Asio extensions</li> <li>スピーカー:<a href=http://boostcon.boost.org/program/speakers#boris-schaeling target=_blank>Boris Schaeling</a></li> <li>形式: チュートリアル</li> <li>トラック:Track I 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/wed/creating_boost_asio_extensions.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/wed/creating_boost_asio_extensions.pdf</a></li> <li>ソースコード : <a href=https://github.com/boostcon/2011_presentations/tree/master/wed/asio_extentions target=_blank>https://github.com/boostcon/2011_presentations/tree/master/wed/asio_extentions</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/creating-boost-asio-extensions-5364822 target=_blank>http://blip.tv/boostcon/creating-boost-asio-extensions-5364822</a></li> </ul> <p>Boost.AsioはBoost C++ librariesの有名なポータブルネットワークライブラリである。<br> このライブラリが、Boost.Netという名前にならなかったのには理由がある。Boost.Asioの真の力は非同期的な操作を実装するためのフレームワークたりえる点である。ネットワーク機能はその非同期的な操作のよい実例の一つにすぎない。</p> <p>このチュートリアルでは、どのようにBoost.Asioを拡張することができるか、ということと、どうやって非同期的な処理を実装するかについて述べる。<br> まずは、既存の拡張である、ファイルやディレクトリを監視するディレクトリモニタを紹介する。<br> また、このフレームワークに適合しない非同期的な操作を紹介し、Boost.Asioの制限について示す。</p> <h2><a href=#skoot id=skoot>Skootによる設計の旅。ピア指向ジェネリックネットワークライブラリ</a></h2> <ul> <li>Design Journeys with Skoot, a Peer Oriented Generic Networking Library</li> <li>スピーカー:<a href=http://boostcon.boost.org/program/speakers#cliff-green target=_blank>Cliff Green</a></li> <li>形式:チュートリアル</li> <li>トラック:Track I 2011</li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/design-journeys-with-skoot-a-peer-oriented-generic-networking-library-5258057 target=_blank>http://blip.tv/boostcon/design-journeys-with-skoot-a-peer-oriented-generic-networking-library-5258057</a></li> </ul> <p>効率的で、エレガントで、汎用的なC++ライブラリを完成させるまでの道程は、決して平坦ではない。GPSが壊れたかのように道を誤り、暗い路地をすり抜ける羽目になり、非常にストレスがたまる。<br> それと同時に、APIの設計を固めたり、利用箇所全てで機能性を検証することは、刺激的で満足のいく旅路となるだろう。<br> このプレゼンテーションでは、数々の設計上のトレードオフについて、またSkoot libraryで利用しているBoost librariesについて議論する。</p> <p>Skootは、分散環境やピア指向の処理環境で利用しやすい、C++のネットワーキングライブラリである。<br> また、TCP、UDPプログラミングにおける様々な通信パターンや利用法を単純化し抽象化する。<br> Skootは、Asio、Function、Bind、Shared(とWeak)Pointer、そしてOptionalといった多くのライブラリを利用している。<br> 多くのC++開発者は汎用ライブラリの完成形だけを注視して、そこに至るまでの議論を軽視する傾向がある。</p> <ul> <li>ある種のtype erasureに対し、テンプレート化クラスが意味があるのはどんな時か?</li> <li>非常に強力なテンプレート関数や関数オブジェクトがあるのに、多くのC++開発者がテンプレートクラスだけをありがたがるのは何故か? </li> <li>いつでもデストラクトされる可能性のあるオブジェクトへの参照を有効にしつづける方法は?</li> <li>Boost libraryの魔法、Bindとは何か? なぜそれがモミ林にいるキンキラの吸血鬼よりすばらしいのか?<ul> <li>(訳註:モミは吸血鬼を封印する効果があるとされている。吸血鬼は光にも弱いため、"glittering vampire in a forest of fir trees"は二重の意味でありえない。これと対比させる事で、Bindの"魔法"の強力さを示している)</li> </ul> </li> <li>C++で仮想テンプレートメンバ関数が必要になった場合、どうすればいいのか?</li> <li>Asioの実装者である、Chris Kohlhoffはノーベル賞か何かを受賞すべきか?</li> </ul> <p>これらの疑問はSkoot開発中に湧き、解決されていったが、これらを説明することで、Boost導師と言える領域に達していない開発者を啓発することができると思う。<br> このプレゼンテーションは、汎用的なテンプレートを基礎にした設計技法を学んでいる、また、FunctionとBind(と、その他のライブラリ)を基本構成要素としてどう利用するかについて興味があるような、熟練したC++開発者向けである。<br> ライブラリの使用方法や、API設計や洗練、また良いユニットテストの作成についても議論する。</p> <p>(人物紹介:Bio: Cliffは現在SeattleにあるBoeingに勤務する、経験豊かなC++開発者である。<br> 氏の開発経歴の中で主なものは、ネットワーキングと複数のプログラミング言語での可用性の高い分散処理である。また、Prologに愛着を持っていることも付記しておく。<br> Cliffは、複数の新興企業に勤務した経歴がある。これらは今やすべて破産、買収されたが、実勢価格の自社株購入権を失った時でも、安定した給料を高く買われている。)</p> <h2><a href=#geneva id=geneva>Genevaライブラリによる分散パラメトリック最適化</a></h2> <ul> <li>Distributed parametric optimization with the Geneva library</li> <li>スピーカー:<a href=http://boostcon.boost.org/program/speakers#ruediger-berlich target=_blank>Ruediger Berlich</a></li> <li>形式:チュートリアル</li> <li>トラック:Track I 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/mon/boostcon2011_geneva.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/mon/boostcon2011_geneva.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/distributed-parametric-optimization-with-the-geneva-library-5349954 target=_blank>http://blip.tv/boostcon/distributed-parametric-optimization-with-the-geneva-library-5349954</a></li> </ul> <p>このプレゼンテーションではBoost libraryに大きく依存している分散最適化アルゴリズムのオープンソースライブラリであるGenevaを紹介する。<br> Genevaは現在、勾配降下法、進化アルゴリズム、群アルゴリズムをカバーしており、まもなく焼きなまし法が追加されることになっている。<br> すべてのアルゴリズムは、候補となるソリューションが最適化アルゴリズムを自由に切り替えられるように、同じデータ構造に作用する。<br> Genevaはグリッド環境、クラウド環境、マルチコアシステム、クラスター上でも、大規模なパラメトリック最適化問題を解くことができる。<br> このライブラリは、同時に最適化問題に取り組む数百のクライアントでテストされている。<br> 使用しているライブラリは、Boost.Serialization、Threads、Conversion、Date/Time、Function、Bindなど多岐にわたる。<br> このプレゼンテーションでは、ユーザーの視点から、Geneva library自体について、また、Boostで培われた経験について論じる。</p> <h2><a href=#fast-numerical-computation id=fast-numerical-computation>C++による高速数値計算:遅延コード生成(LzCG)のためのExpression Templateとその先へ</a></h2> <ul> <li>Fast numerical computation in C++:Expression Templates and Beyond to Lazy Code Generation (LzCG)</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#bojan-nikolic target=_blank>Bojan Nikolic</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track I 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/fast_numerical.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/fast_numerical.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/fast-numerical-computation-in-c-expression-templates-and-beyond-to-lazy-code-generation-lzcg-5260438 target=_blank>http://blip.tv/boostcon/fast-numerical-computation-in-c-expression-templates-and-beyond-to-lazy-code-generation-lzcg-5260438</a></li> </ul> <p>Expression templateは、数値計算において、強力な最適化を可能にするC++の機能である。</p> <p>Expression templateはBoost.uBLASや、他の有名なC++の数値計算ライブラリ (例えば、先駆けであるBlitz++やArmadilloなど) に用いられている。ATLASやFFTWのような"標準"となるC++で書かれたライブラリはまだない。なぜないのか? このチュートリアルの最初の章では、私は数値計算における最適化の挑戦について、最適化のためにどのようにしてexpression templateが使われているのか、そして、expression templateの使用を妨げる根本的な要因についてレビューを行う。</p> <p>2つめの章では、私はいくつかの数値計算フレームワークが、どのようにして、一般にC++-onlyのライブラリで達成されているよりも高いパフォーマンスを達成しているかについて紹介する。それらのライブラリでの重要な特徴は、複雑なコード生成、実行されるハードウエアへの正確な適応、そして、実行前に多くの異なる実装の性能を計る能力をもつことである。</p> <p>最後に、私は、どのようにすればC++のパフォーマンスを、Expression templateによってもたされるそれよりも高くできるかについて論議する。私は新しい開発途中のフレームワークを用いて、実際にどのように動いているかのデモを行う。</p> <h2><a href=#funding-boost id=funding-boost>国内、国際的な研究プログラムや基金を通じた、Boost開発の資金調達について</a></h2> <ul> <li>Funding Boost development through national and international research programs and funds</li> <li>スピーカー:<a href=http://boostcon.boost.org/program/speakers#ruediger-berlich target=_blank>Ruediger Berlich</a></li> <li>形式:パネルディスカッション</li> <li>トラック:Track II 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/BoostCon2011Funding.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/BoostCon2011Funding.pdf</a></li> </ul> <p>このプレゼンテーションでは、まず、Boostの開発をサポートする目的で、国内・国際的な研究プログラムや資金を活用するための実現可能な方法について議論する。</p> <p>ゴールは3部構成である:</p> <ul> <li>Boostの開発に役立てるために、国内、国際的な研究資金調達スキーム(NSFやEuropean Unionなど…)を活用するために、多国間の連携に向けて取り組み始めるには</li> <li>Boostを、世界各地の大学や工業大学でコンピュータサイエンス教育のカリキュラムで取りあげられるような標準的なトピックにするためには</li> <li>Boost開発に科学分野からの新しい参加者を取り込むには</li> </ul> <h2><a href=#future-of-boost id=future-of-boost>Boostの未来 - パネルディスカッション2011</a></h2> <ul> <li>Future of Boost Panel ’11</li> <li>スピーカー:<a href=http://boostcon.boost.org/program/speakers#dave-abrahams target=_blank>Dave Abrahams</a>, <a href=http://boostcon.boost.org/program/speakers#beman-dawes target=_blank>Beman Dawes</a>, <a href=http://boostcon.boost.org/program/speakers#jeff-garland target=_blank>Jeff Garland</a>, <a href=http://boostcon.boost.org/program/speakers#eric-niebler target=_blank>Eric Niebler</a></li> <li>形式:パネルディスカッション</li> </ul> <p>Boostには、本筋の議論や、尊重すべき、また有用なメーリングリストを維持するために、ポストの承認と管理を含むメーリングリストの運用を行っている小規模のモデレータグループがいる。</p> <p>このグループは、Webサイトや、ソースリポジトリの管理やその他の管理業務も遂行している。</p> <p>また、少なくとも、Boostに関することを促進するために、委員会を監督する非公式幹部としての役割をも果す。</p> <h2><a href=#range-unicode id=range-unicode>Rangeのためのジェネリックな変換と分割:Unicodeのためのソリューション</a></h2> <ul> <li>Generic Conversion and Segmentation for Ranges: a Solution for Unicode</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#mathias-gaunard target=_blank>Mathias Gaunard</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track II 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/wed/unicode.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/wed/unicode.pdf</a></li> </ul> <p>一貫した世界のライティングシステムのうちのほとんどが通る、テキストを表現し、操作する業界標準であるUnicodeに対処するBoostでのソリューションの数多くの需要は常にあった。この話では、我々は、Google Summer of Code 2009で開始したソリューションを示す。Rangeのコンセプトに基づいて、計量で、非侵入的で、柔軟で、ジェネリックで、潜在的にlazyである。</p> <p>アルゴリズムをジェネリックにするために、全てが書き直された。また、それによって、このライブラリはいかなる既存のUnicodeソリューションにも依存しない。このライブラリは、いくつかの外部データを要求するが、ライブラリがそれ自身のデータベースに埋め込むにも関わらず、ライブラリを別のデータベースとリンクするために使用することができる明快で安定したABIがある。</p> <p>Unicodeライブラリのニーズは、スピンオフとして別のライブラリに至った:Convertライブラリは、N to M変換を使用して、容易にRangeを変換し、分割することを可能にするライブラリであり、Rangeを正格もしくはlazyにイテレートする。また、それはSIMDによって加速された変形の開発を助ける設備を提供する。このライブラリは、最初はUnicodeのために作られたが、我々はそれを文字エンコーディング変換と無関係な様々なものに使用することができることを示す。</p> <h2><a href=#proto-edsl-design id=proto-edsl-design>Protoを楽しむ - C++ EDSLデザインのハンズオンチュートリアル</a></h2> <ul> <li>Getting Jiggy with Proto — Hands-on Tutorial on C++ EDSL Design</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#joel-falcou target=_blank>Joel Falcou</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track II 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/mon/proto.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/mon/proto.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/getting-jiggy-with-proto-hands-on-tutorial-on-c-edsl-design-5368236 target=_blank>http://blip.tv/boostcon/getting-jiggy-with-proto-hands-on-tutorial-on-c-edsl-design-5368236</a></li> </ul> <p>Embedded Domain Specific Languagesは、中小の大きさの問題を宣言的で効率的な手段で扱うための設計として、実際に選ばれることが増えている。とりわけ、C++はBoost.Protoのようなライブラリのおかげで、そのような開発の親言語として、本当に興味深い。</p> <p>このチュートリアルは、現実的なシチュエーションでのクイックスタートとなり、Boost.Protoを用いたコードが美しく小さく効率的であることをデモすることに焦点を当てている。</p> <p>チュートリアルは以下の要素から構成される:</p> <ul> <li>短いライブラリの基本的なブロックのプレゼンテーション </li> <li>単純な計算機のコードから、拡張可能なコアを持つ解析関数の微分を行うシステムのプロトタイプまでのガイド付きの練習問題。この問題は、Protoを用いてEDSLを構築するいくつかの段階と、Proto特有のイディオムについて示す。</li> </ul> <p>参加者はテンプレートメタプログラミングに関する知識を持つ中級か上級のC++ユーザが望ましい。昨年のEric NieblerによるProtoに関する発表を見るのもよいだろう。</p> <h2><a href=#haskell-pseudo-cpp id=haskell-pseudo-cpp>Haskell - C++テンプレートメタプログラミングのための擬似言語</a></h2> <ul> <li>Haskell – The Pseudocode Language for C++ Template Metaprogramming</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#bartosz-milewski target=_blank>Bartosz Milewski</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track I 2011</li> <li>発表資料 :<ul> <li>Part1 <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/haskell/Bartosz1.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/haskell/Bartosz1.pdf</a></li> <li>Part2 <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/haskell/Bartosz2.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/haskell/Bartosz2.pdf</a></li> <li>Part3 <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/haskell/Bartosz3.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/haskell/Bartosz3.pdf</a></li> </ul> </li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/haskell-the-pseudocode-language-for-c-template-metaprogramming-5258033 target=_blank>http://blip.tv/boostcon/haskell-the-pseudocode-language-for-c-template-metaprogramming-5258033</a></li> </ul> <p>C++テンプレートメタプログラミングは使うのも解析するのもデバッグするのも難しいが、それはだいたいコンパイル時のC++が関数型言語的で構文がゲロいからである。うまくメタプログラミングするコツは、関数型プログラミングに精通して、C++メタプログラムのための擬似言語を作ることであるが、実のところ既にそのための言語はあり、そいつはHaskellとか言われている。このセッションではまず、そのHaskellで書いたコードと等価なC++のメタコードを並べることでHaskellがどんな言語かを紹介する。その後、Haskellを使った複雑なC++メタプログラムの読み書きの方法を示す。最後はC++における「実行できるテンプレート」の説明で、モナドとは何か、どうやってそれを使うかを示す。</p> <h2><a href=#intel-tm id=intel-tm>IntelのC++ Software Transactional Memory CompilerとC++でのトランザクション言語構築のドラフト仕様について</a></h2> <ul> <li>Intel’s C++ Software Transactional Memory Compiler and the Draft Specification of Transactional Language Constructs for C++</li> <li>スピーカー:<a href=http://boostcon.boost.org/program/speakers#justin-gottschlich target=_blank>Justin Gottschlich</a></li> <li>形式:チュートリアル</li> <li>トラック:Track I 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/boostcon_tm_spec.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/boostcon_tm_spec.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/intel-s-c-software-transactional-memory-compiler-and-the-draft-specification-of-transactional-language-constructs-for-c-5254333 target=_blank>http://blip.tv/boostcon/intel-s-c-software-transactional-memory-compiler-and-the-draft-specification-of-transactional-language-constructs-for-c-5254333</a></li> </ul> <p>トランザクションメモリ(TM)を利用すれば、プログラマからは複雑な共有メモリ管理が隠蔽されるため、並行プログラミングが容易になる。このセッションでは、最新のC++でのトランザクション言語構築のドラフト仕様について、ならびに、インテルのC++ software transactional memory (STM) compilerでの実装例について紹介する。</p> <p>Boost libraryの作者は高度に最適化され、極度にタイプセーフなソフトウェアを実装することを目標としている。<br> このセッションでは、厳格なタイプセーフと最適化を達成するために、Intel C++ STM compilerでどのようにトランザクションが利用されているかについて詳細に述べる。<br> 特に、テンプレート宣言やラムダ式、コピーコンストラクタ、そして基本的な関数やクラスでどのようにトランザクションが利用されているか紹介する。<br> また、リラックス・トランザクションの概念について紹介し、この概念を用いて、取り消し不能なアクション(例えば、I/Oのように実行前に戻せないアクション)をどう扱うとよいかについて示す。</p> <p>最後に、最新のC++でのトランザクション言語構築のドラフトと、Intel’s C++ STM compilerのロードマップについて述べる。</p> <h2><a href=#mpl-graph id=mpl-graph>MPL.Graphの紹介</a></h2> <ul> <li>Introducing MPL.Graph</li> <li>スピーカー:<a href=http://boostcon.boost.org/program/speakers#gordon-woodhull target=_blank>Gordon Woodhull</a></li> <li>形式:チュートリアル</li> <li>トラック:Track I 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/mpl.graph.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/mpl.graph.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/introducing-mpl-graph-5262812 target=_blank>http://blip.tv/boostcon/introducing-mpl-graph-5262812</a></li> </ul> <p>MPLメタプログラミングとBGLグラフコンセプトの過激な合いの子である、MPL.Graphがコンパイル時にメタデータのグラフを作成し走査するためのBoostライブラリとして提案された。</p> <p>グラフのデータ構造とアルゴリズムは様々な目的でコンパイルタイムに適用できる。例えば、クラス階層や、Expression Templateツリー、ステートマシンや文法は完全にコンパイルタイムに処理できるグラフである。また、呼び出しグラフや、オブジェクトの所有権、オブジェクト間のポインターは、部分的にコンパイルタイムに処理できるが、残りはランタイムに処理する必要があるグラフである。</p> <p>これらは全て、グラフのアルゴリズムを実行するために、標準的なグラフインターフェイスを適用することができるか、計算されたグラフから作り出される。仕様および分析にコンパイルタイムグラフを使用すれば、抽象化の無駄なランタイムサイクル回避でき、概念的な明快さと抽象化(一度"メタ"の壁を乗り越えられれば)が向上する。</p> <p>今のところ、MPL.GraphはBGLの<code>incidence_list</code>と<code>adjacency_list</code>データ構造と、<code>breadth_first_search</code>と<code>depth_first_search</code>アルゴリズムのコンパイルタイムバージョンを提供している。このライブラリはBoost.MSMで、リージョン(連結成分)と到達不能な状態とを区別するために、いまのところはサブライブラリとして使用されている。このトークではMPL.Graphの新しい用法を紹介する。(例えば、文法や、Fusion Graphとして知られるヘテロなグラフデータ構造など) また、最終的な目標である、コンパイルタイムグラフでランタイムグラフを記述する、"グラフのグラフ"といえるメタグラフについて少しだけ紹介する。</p> <h2><a href=#lock-free-data-structure id=lock-free-data-structure>ロックフリープログラミング パート2: データ構造</a></h2> <ul> <li>Lockfree Programming Part 2: Data Structures</li> <li>スピーカー:<a href=http://boostcon.boost.org/program/speakers#tony-van-eerd target=_blank>Tony Van Eerd</a></li> <li>形式:チュートリアル</li> <li>トラック:Track I 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/wed/lockfree_2011_slides.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/wed/lockfree_2011_slides.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/lockfree-programming-part-2-data-structures-5258642 target=_blank>http://blip.tv/boostcon/lockfree-programming-part-2-data-structures-5258642</a></li> </ul> <p>まず昨年夏の話の概要から始め、昨年中断したところ - ロックフリープログラミングの"FCD(恐怖、必然性、そしてかなりの嘘)"について更に深めるところから再開する。</p> <p>今回はデータ構造を主題にするつもりだ。まずは、単純なロックフリースタックから始め、このスタックのABA問題(訳註:see <a href=http://en.wikipedia.org/wiki/ABA_problem target=_blank>http://en.wikipedia.org/wiki/ABA_problem</a>)について、その後、様々なロックフリーキューについて議論する。</p> <h2><a href=#cell-broadband id=cell-broadband>Boostベースの並列通信ライブラリによる、セルブロードバンドエンジンのアーキテクチャをマスターする</a></h2> <ul> <li>Mastering the Cell Broadband Engine architecture through a Boost based parallel communication library</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#joel-falcou target=_blank>Joel Falcou</a>, <a href=http://boostcon.boost.org/program/speakers#lionel-lacassagne target=_blank>Lionel Lacassagne</a>, <a href=http://boostcon.boost.org/program/speakers#sebastian-schaetz target=_blank>Sebastian Schaetz</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track II 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/cell_mpi.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/cell_mpi.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/mastering-the-cell-broadband-engine-architecture-through-a-boost-based-parallel-communication-library-5349964 target=_blank>http://blip.tv/boostcon/mastering-the-cell-broadband-engine-architecture-through-a-boost-based-parallel-communication-library-5349964</a></li> </ul> <p>セルブロードバンドエンジン(CBE)は、内部のリングバスによって接続しているPowerPCプロセッサと、8ベクトル共同処理要素(8 vector co-processing elemens)を組み合わせる、組み込みシステムである。それは、マルチメディア、シグナルプロセッシング、ハイパフォーマンスコンピューティングなどのアプリケーションにふさわしいプラットフォームである。</p> <p>現行のセルプロセッサ(PowerXCell 8i)は、204.8 GFlop/sの最大の単精度のパフォーマンスと、102.4 GFlops/sの倍精度のパフォーマンスで規定される。この巨大な計算力とアーキテクチャのパワー効率(IBM BladeCenter QS22のための1ワットあたり0.87の倍精度GFlops/s)の観点から、グラフィック処理装置(graphics processing units:GPGPU)上の現代のx86マルチコアアーキテクチャおよび汎用計算(general-purpose computation)の適切な代わりであった。これらの利点にも関わらず、セルプロセッサの採用は期待されたよりも遅かった。我々は、これがアーキテクチャの新たな性質、およびその複雑性を抽象化する、便利なツールの不足に起因すると考える。</p> <p>この話では、我々は、セルアーキテクチャのための効率的なアプリケーションの開発を単純化するライブラリを作る努力を示す。我々は、基礎となるハイパフォーマンスアルゴリズムで直感的なインタフェースを作るために、現代のC++コンセプト、および多くのBoostライブラリ(MPL, PP, Function, Spirit)をどのように利用するかを示す。我々は、セルアーキテクチャと、我々がどのようにそれをマスターしたかにともなう調整について議論する。</p> <p>我々のライブラリの不可欠な部品は、メッセージパッシングに基づくCBEのシステムデザインに向いているプログラミングモデルである。我々の実装はBoost.MPIインタフェースに基づく非同期通信を含んでおり、また、パフォーマンスは集合的な操作(collective operations)を最適化した。</p> <p>また、我々は非同期データ転送、およびマルチバッファリングをサポートする、分散コンテナと、セグメント化されたイテレータの実装を示す。さらに、我々は制限のあるリソースを持ったシステムに特に適している、Boost.Testのあとに設計された計量の単体テストモジュールのデモを示す。</p> <p>最後に、我々はそのようなアーキテクチャのためのソフトウェアエコシステムの実行可能性を評価し、また、Boostの設計にどのように影響を受けたか、そのようなシステムからのパフォーマンスにコテ入れし、おそらく、そのような特定の組み込みハードウェア上のBoostの将来に関する議論を始めることができる。</p> <h2><a href=#odb-boost id=odb-boost>ODBとBoostによるオブジェクトリレーショナルマッピング</a></h2> <ul> <li>Object-relational mapping with ODB and Boost</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#boris-kolpackov target=_blank>Boris Kolpackov</a></li> <li>形式 : 講義</li> <li>トラック : Track II 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/orm_with_odb_and_boost.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/orm_with_odb_and_boost.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/object-relational-mapping-with-odb-and-boost-5364825 target=_blank>http://blip.tv/boostcon/object-relational-mapping-with-odb-and-boost-5364825</a></li> </ul> <p>ODBは、C++のためのオープンソースで、クロスプラットフォームなクロスデータベースオブジェクトリレーショナルマッピング(ORM)システムである。同様の機能を提示する他のライブラリと異なり、ODBは、永続クラス(persistent classes)とC++クラス宣言から、それらのデータベース表現との間の変換を行うコードを自動的に生成する。また、ODBは高度にカスタマイズ可能である。人気のあるフレームワーク、BoostやQtのようなライブラリの基本型、スマートポインタ、およびコンテナのようなコンポーネントは、標準のバージョンと合わせて永続クラスでシームレスに使用することができる。</p> <p>話の前半は、ODBシステムの基本概念とワークフローを導入する。後半は、BoostのためのODBプロファイル、永続Boost値型(例えば<code>boost::gregorian::date</code>)のサポートを行うライブラリ、スマートポインタ(例えば<code>boost::shared_ptr</code>)およびコンテナ(例えば<code>boost::optional</code>、<code>boost::unordered_set</code>)に注目する。</p> <h2><a href=#gcc-plugins id=gcc-plugins>GCCプラグインによるC++解析</a></h2> <ul> <li>Parsing C++ with GCC plugins</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#boris-kolpackov target=_blank>Boris Kolpackov</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track I 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/parsing_cxx_with_gcc_plugins.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/parsing_cxx_with_gcc_plugins.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/parsing-c-with-gcc-plugins-5349971 target=_blank>http://blip.tv/boostcon/parsing-c-with-gcc-plugins-5349971</a></li> </ul> <p>GNU Compiler Collection(GCC)は、成熟し、広く使用されたC++コンパイラ実装を持ったオープンソースでクロスプラットフォームなコンパイラスイートである。GCCのバージョン4.5.0は、コンパイラコンポーネントの再利用と同様に、コンパイルプロセスのカスタマイズを許可する、新たな動的なプラグインアーキテクチャを追加した。この発表のゴールは、GCCプラグインを使用して、C++を解析する方法を示すことである。</p> <p>この話は、解析された翻訳単位の内部表現と、GCCプラグインアーキテクチャのハイレベルな概要から始まる。その後、C++宣言が存在することに関する情報の表示をするための、単純なプラグインの実装を示す。この話は、主翻訳単位、アプリケーション特有のプラグマと属性のハンドリング、プログラマティックなテンプレートインスタンス化に追加のC++コードを注入するなどのより高度な技術をカバーする。</p> <p>この発表は、Clang(最近全面的なC++98サポートを達成した別のC++コンパイラ実装)とGCCプラグインアーキテクチャの簡潔な比較なしでは不完全になる。この話は、Boostの、および(GCCプラグインを使用して実装することができる)より広いコンテキストで可能なおもしろいアプリケーションの迅速なブレーンストーミングセッションで締めくくる。</p> <h2><a href=#phoenix-v3 id=phoenix-v3>Phoenix V3の概要</a></h2> <ul> <li>Phoenix V3 –An Overview</li> <li>スピーカー: <a href=http://boostcon.boost.org/program/speakers#thomas-heller target=_blank>Thomas Heller</a>, <a href=http://boostcon.boost.org/program/speakers#hartmut-kaiser target=_blank>Hartmut Kaiser</a></li> <li>形式: チュートリアル</li> <li>トラック: Track II 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/mon/phoenix_v3.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/mon/phoenix_v3.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/phoenix-v3-an-overview-5250984 target=_blank>http://blip.tv/boostcon/phoenix-v3-an-overview-5250984</a></li> </ul> <p>Phoenixは次世代のインラインの無名多態関数オブジェクト生成器となるだろう。V3ではBoost.Bind と Boost.Lambdaの機能が合成された新しいライブラリとなった。このライブラリを記述する際、後方互換性を保持したまま前述したライブラリ(訳註:BindとLambda)の制限を修正した。このセッションの目的は、C++における関数プログラミングが、いかに重要かつエレガントかについて概説することだ。セッションの第一部では、Phoenixで定義されたDomain Specific Embedded Language (DSEL)について述べる。DSELは演算子のオーヴァーロードと標準C++関数で構成されている。PhoenixがC++を模倣した言語を定義したのは、潜在的なユーザーが関数プログラミングに入門するハードルを下げるためだ。一方、既存のC++コードは(関数オブジェクトとして知られる)高階関数に依存している。たとえば、C++標準ライブラリはあるアルゴリズムの挙動を変更するために高階関数を使っている。第二部では関数オブジェクトの代わりにどうPhoenixを利用するか、また、Phoenix expression内でどう既存のユーザーコードを有効にするかについて例示する。しかし、Phoenixの真の力はこんなものではない。Phoenixは前のセクションで議論したように、式をデータとして扱う (C++においては)ユニークな機構を備えている。これによって、C++の標準的な手法ではなく、ユーザーの好みに応じた手法でPhoenixを利用できる。潜在的なユーザーにPhoenixを軸に展開する将来的なアプリケーションの見識を得ていただくために、このセッションの締めくくりとして、これらの機構についての概説をするつもりである。</p> <h2><a href=#boost-simd id=boost-simd>Boost.SIMDによる実用的なSIMDアクセラレーション</a></h2> <ul> <li>Practical SIMD acceleration with Boost.SIMD</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#joel-falcou target=_blank>Joel Falcou</a>, <a href=http://boostcon.boost.org/program/speakers#mathias-gaunard target=_blank>Mathias Gaunard</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track I 2011</li> <li>プレゼンテーション資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/simd.pdf target=_blank>Practical SIMD acceleration with Boost.SIMD</a></li> <li>日本語版資料 : <a href=http://www.slideshare.net/faithandbrave/boostsimd target=_blank>Practical SIMD acceleration with Boost.SIMD(ja)</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/practical-simd-acceleration-with-boost-simd-5261117 target=_blank>http://blip.tv/boostcon/practical-simd-acceleration-with-boost-simd-5261117</a></li> </ul> <p>SIMDマシン - 同じ命令で複数の要素からなるデータを並列に計算する能力を持つマシン - は、今日では、スーパーコンピュータからデスクトップコンピュータやモバイルコンピュータまで、ありふれたものとなっている。<br> 数値計算のツールやライブラリは、SIMDを使用することによって計算速度を向上させることができるが、今のところ、C++デベロッパのための、最小で高レベルな、プラットフォームに依存しないインターフェイスを提供するライブラリはないといえるだろう。</p> <p>このチュートリアルで、我々はレビュー待ちの状態にあるBoost.SIMDライブラリについて紹介し、技術的な挑戦と、どのようにBoost.SIMDを用いて、一般的な、あるいは、あまり一般的でない問題に適用させるのかについて解説する。<br> 解説では、我々のライブラリが、全ての種類のアルゴリズムを高速化するという点や、ペナルティがないようにSIMDハードウエアをちょうどよく抽象化するという点においての有用さについて述べる。</p> <p>Boost.SIMDの設計は、可能な限り軽量になるように、また、巨大な数値計算ライブラリNT2の一部となるように作られている。<br> NT2は、テーブルや行列を作るために、SMP、MPI、GPGPUの技術と一緒にBoost.SIMDを用いている。<br> Boost.SIMDはSIMDのみを扱う専用ライブラリとして作られている。<br> したがって、Boost.SIMDの主たる抽象化はSIMDレジスタである。(例えば、SIMDプロセッサによって処理される基本となる単位)<br> また、Boost.SIMDはプラットフォームに依存しない高レベルインターフェイスを提供するが、ローレベルな問題はユーザにとって主な関心事のままである。</p> <p>Boost.SIMDは、一定のコードパターンを認識し、最も効率的な解法への射影をするように、Boost.Proto DESLフレームワークを用いている。例えば、Altivecと未来の世代のx86環境に存在する積和命令や、与えられた範囲で必要とされる値を検出するために用いている。</p> <p>さらに、このライブラリは、与えられたアーキテクチャのプリミティブに適正に簡単に特殊化でき、新しいターゲットや関数を作成することができる強力な外部ディスパッチ機構を供えている。</p> <h2><a href=#real-workd-spirit-qi id=real-workd-spirit-qi>現実世界におけるSpirit.Qi</a></h2> <ul> <li>Spirit.Qi in the Real World</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#robert-stewart target=_blank>Robert Stewart</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track I 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/spirit_qi_in_the_real_world.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/tue/spirit_qi_in_the_real_world.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/spirit-qi-in-the-real-world-5254335 target=_blank>http://blip.tv/boostcon/spirit-qi-in-the-real-world-5254335</a></li> </ul> <p>Spiritの過去のセッションは、Spiritの導入や、チュートリアルによって現実の利用に注目した。実際のSpirit.Qiパーサーを書く際、速い段階で「悪魔は細部に宿る」ということに気付くだろう。思考錯誤によって、あるいはおそらくSpiritメーリングリストによって発見しなければならない特別なケース、トリック、イディオムがある。それには時間がかかり、便利とは限らないかもしれない。このセッションに、我々は<code>printf()</code>(スタイルフォーマット文字列)のためのSpirit.Qiパーサーの開発を通じて見て回るだろう。結果として型安全で効率的な、<code>printf()</code>の置き換えになるだろう。</p> <h2><a href=#sweep-line-algorithm id=sweep-line-algorithm>平面上の点、線分、多角形中間軸のボロノイ図における掃引線アルゴリズム</a></h2> <ul> <li>Sweep-Line Algorithm for Voronoi Diagrams of Points, Line Segments and Medial Axis of Polygons in the Plane</li> <li>スピーカー:<a href=http://boostcon.boost.org/program/speakers#lucanus-simonson target=_blank>pLucanus Simonson</a>, <a href=http://boostcon.boost.org/program/speakers#andrii-sydorchuk target=_blank>Andrii Sydorchuk</a></li> <li>形式:チュートリアル</li> <li>トラック:Track II 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/voronoi_diagram_of_line_segments.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/voronoi_diagram_of_line_segments.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/sweep-line-algorithm-for-voronoi-diagrams-of-points-line-segments-and-medial-axis-of-polygons-in-the-plane-5368229 target=_blank>http://blip.tv/boostcon/sweep-line-algorithm-for-voronoi-diagrams-of-points-line-segments-and-medial-axis-of-polygons-in-the-plane-5368229</a></li> </ul> <p>平面上の交点のないセグメントと点の集合を入力値とするボロノイ図を演算するアルゴリズムについて述べる。</p> <p>点のボロノイ図の演算を行なうFortuneによる平面掃引アルゴリズムを踏まえて、理論値であるO(n log n)の計算量を維持したまま、このアルゴリズムを線分に適用できるように拡張した。<br> 線分に対するボロノイ図は、多角形中間軸を自明に生成することができ、VSLI、CAD、CAMの製造など、さまざまな適用が考えられる。<br> 効率を犠牲することなく数値堅牢性を保証するアプローチについても議論するつもりである。<br> lazy-exact arithmeticに基づく堅牢な述語を用いることで、このアルゴリズムが整数座標入力について確実に正しい結果を返すことを示す。</p> <h2><a href=#b-tree id=b-tree>Boostに提案されたB木ライブラリ</a></h2> <ul> <li>The Proposed Boost B-tree Library</li> <li>スピーカー:<a href=http://boostcon.boost.org/program/speakers#beman-dawes target=_blank>Beman Dawes</a></li> <li>形式:チュートリアル</li> <li>トラック:Track II 2011</li> <li>プレゼン資料:<a href=https://github.com/boostcon/2011_presentations/blob/master/tue/proposed_b_tree_library.pdf target=_blank>The Proposed Boost B-tree Library</a></li> <li>日本語版資料:<a href=http://www.slideshare.net/eldesh/proposed-boost-btreelibraryja target=_blank>The Proposed Boost B-tree Library(ja)</a></li> <li>発表ビデオ: <a href=http://blip.tv/boostcon/the-proposed-boost-b-tree-library-5349968 target=_blank>http://blip.tv/boostcon/the-proposed-boost-b-tree-library-5349968</a></li> </ul> <p>B木はデータベースやファイルシステム、ディスクに記憶される連想コンテナなどに利用される、どこにでもあるデータ構造である。</p> <p>このセッションではB木について、また、ディスクに記憶されるB木による<code>map</code>、<code>set</code>、<code>multimap</code>、<code>multiset</code>ライブラリについて紹介する。<br> まずB木を概略的に説明し、提案されたライブラリコンテナとC++標準の関連するコンテナとの関連について示す。すなわち、実装されているインターフェースや、落し穴、可変長データ、パフォーマンス、また、このライブラリの実装がどこまで進んでいるかについて紹介する。<br> フィードバックや議論する時間も設ける予定だ。</p> <p>このセッション終了時には、参加者した方々がご自身のアプリケーションにこのライブラリを利用することができるようになり、このライブラリがBoostに正式実装されるよう、さらなるフィードバックしていただけるようになるはずである。</p> <h2><a href=#think-async id=think-async>非同期について考える : Boost.Asioを使用したアプリケーション設計</a></h2> <ul> <li>Thinking Asynchronously: Designing Applications with Boost.Asio </li> <li>スピーカー:<a href=http://boostcon.boost.org/program/speakers#christopher-kohlhoff target=_blank>Christopher Kohlhoff</a></li> <li>形式 : 講義</li> <li>トラック : Track II 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/mon/thinking_asynchronously.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/mon/thinking_asynchronously.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/thinking-asynchronously-designing-applications-with-boost-asio-5250947 target=_blank>http://blip.tv/boostcon/thinking-asynchronously-designing-applications-with-boost-asio-5250947</a></li> </ul> <p>最初から、Boost.Asioは本心では、フレームワークとしてではなく、ツールキットとして設計された。ライブラリは1セットの基礎、汎用的なビルディングブロックの提供に注目する。タスクを検討するために、一つ以上の正しい方法があり、また、ライブラリは特定の書き方を強制しない。</p> <p>この発表では、我々は、問題を設計するためにどのように非同期の考え方を適用することができるかを考えていく。我々は、設計代案、共通の罠と落とし穴、それと複合操作によって計算量を攻撃する方法を見ることになるだろう。この話はまた、最適化、およびパフォーマンスと拡張性を管理するために、Boost.Asioが提供するツールをカバーするだろう。</p> <p>この話は、出席者がBoost.Asioにある程度基礎的なレベルのなじみがあると仮定する。</p> <h2><a href=#thread-shared-variables id=thread-shared-variables>C++0xのスレッドと共有変数</a></h2> <ul> <li>Threads and Shared Variables in C++0x</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#hans-boehm target=_blank>Hans Boehm</a></li> <li>形式 : キーノート</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/wed/boehm-boostcon11.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/wed/boehm-boostcon11.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/hans-boehm-threads-and-shared-variables-in-c-0x-keynote-5250902 target=_blank>http://blip.tv/boostcon/hans-boehm-threads-and-shared-variables-in-c-0x-keynote-5250902</a></li> </ul> <p>C++0xの規格ドラフトは、言語へスレッドを導入し、スレッド間で共有される変数の意味を念入りに定義する。設計は、デフォルトでマルチスレッドのプログラムがスレッドの単純な割り込み実行に基づいたセマンティクス(つまり、順序一貫性:sequential consistency)を保証するべきであるという考えに基づく。間違ったものや無意味であるものとして、我々がデータレース(通常の共有変数への、ほとんどの種類の非保護同時アクセス)を考察するという理由だけで、これは効率的な実行を許可する。ドラフトは代わりに、とくにID付けされたオブジェクトにアクセスを許可するアトミック操作の広範囲なコレクションをサポートする。</p> <p>我々は、C++0xのスレッドサポートの概要を示し、次に、共有変数セマンティクスを定義するメモリモデルとアトミックライブラリの相互作用に注目する。過去の慣例とできるだけ一致するように心がけたが、我々は多くの難題と、驚きに遭遇した。我々は、コピーしないために試みた過去の誤りのいくつかに言及する。</p> <p>これは、Sarita Adve、Lawrence Crowl、Paul McKenney、Clark Nelson、Herb Sutter、他の多くの方との共同作業について説明する。</p> <h2><a href=#xml-processing id=xml-processing>C++のマルチパラダイムデザインによるネイティブXML処理</a></h2> <ul> <li>Toward Native XML Processing Using Multi-paradigm Design in C++ </li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#aniruddha-gokhale target=_blank>Aniruddha Gokhale</a>, <a href=http://boostcon.boost.org/program/speakers#sumant-tambe target=_blank>Sumant Tambe</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track I 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/mon/leesa_boostcon.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/mon/leesa_boostcon.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/toward-native-xml-processing-using-multi-paradigm-design-in-c-5254288 target=_blank>http://blip.tv/boostcon/toward-native-xml-processing-using-multi-paradigm-design-in-c-5254288</a></li> </ul> <p>XMLプログラミングは、抽象、分割、プログラミングスタイル、およびイディオムの、それ自身の規則によって強力なデータ処理パラダイムとして出現した。経験を積んだXMLプログラマが求めるものは、それらの生産性がXMLプログラミングのドメイン固有パターンとプラクティスの使用を許可する言語とツールの有効性に依存する。しかし、これらのツールが与えられたXMLスキーマの静的に型付けされた、用語特化のオブジェクトモデル(vocabulary-specific object model)を自動的に生成するため、オブジェクト指向のコミュニティは専用XML言語よりもXMLデータバインディングツールを好む。不運にも、これらのツールはたいてい、純粋なオブジェクト指向の法則を使用して、XMLプログラミングの抽象的概念を統合する際の困難さのために、経験を積んだXMLプログラマの期待するものを避ける。この話は、C++のマルチパラダイムプログラミング能力の新たな適用によって、この普及しているギャップがどのように縮小されるのかを実証する。項目として、ジェネリックプログラミング、メタプログラミング、ジェネレーティブプログラミング、戦略プログラミング(strategic programming)、およびC++によってサポートされた演算子オーバーロードがネイティブで型付けされたXMLプログラミングをどのようにともに可能にするのかを話す。</p> <h2><a href=#why-cpp0x-is-awesomest-network-programming id=why-cpp0x-is-awesomest-network-programming>C++0xはなぜネットワークプログラミングのための、最高の中の最高の言語なのか</a></h2> <ul> <li>Why C++0x is the Awesomest Language for Network Programming</li> <li>スピーカー : <a href=http://boostcon.boost.org/program/speakers#christopher-kohlhoff target=_blank>Christopher Kohlhoff</a></li> <li>形式 : チュートリアル</li> <li>トラック : Track II 2011</li> <li>発表資料 : <a href=https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/Awesomest.pdf target=_blank>https://raw.githubusercontent.com/boostcon/2011_presentations/master/thu/Awesomest.pdf</a></li> <li>発表ビデオ : <a href=http://blip.tv/boostcon/why-c-0x-is-the-awesomest-language-for-network-programming-5368225 target=_blank>http://blip.tv/boostcon/why-c-0x-is-the-awesomest-language-for-network-programming-5368225</a></li> </ul> <p>警告 : これは臆病な人のための話ではない。最先端の言語機能があり、ハックがあり、言語の乱用があるだろう。このセッションは椅子を投げておわるかもしれない。</p> <p>スリルを求めるオタクにとって、それは楽しい旅であるべきだ。我々は、新たなC++0x言語とライブラリ機能のうちいくつかがどのように大きな位置を占めるのかを見ていく。また、いくつかのそれと古いものは、簡潔で、表現力があり、効率的なネットワークプログラムを作るためにBoost.Asioと連携することができる。</p> <h2>翻訳</h2> <p>Akira Takahashi, Norihisa Fujita, zak, DigitalGhost</p></div> </div> </div> </div> <div class="col-sm-3 col-sm-pull-9"> <div class=tree> <ul> <li> <a href=../communities.html>コミュニティ</a> </li> <li> <a href=../howtobuild.html>Boostライブラリのビルド方法</a> </li> <li> <a href=../mailing-lists.html>メーリングリスト</a> </li> <li> <a href=../the-team.html>運営メンバ</a> </li> <li> <a href=../used_project.html>Boostを使用しているプロジェクト</a> </li> <li class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive.html>アーカイブ</a> <ul> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs.html>旧Boost日本語化プロジェクト</a> <ul> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> document <ul> <li style="display: none"> <a href=../archive/boost_docs/document/error_handling.html>エラーと例外のハンドリング</a> </li> <li style="display: none"> <a href=../archive/boost_docs/document/generic_exception_safety.html>ジェネリックコンポーネントにおける例外安全性</a> </li> <li style="display: none"> <a href=../archive/boost_docs/document/generic_programming.html>ジェネリックプログラミング手法</a> </li> <li style="display: none"> <a href=../archive/boost_docs/document/int_const_guidelines.html>Coding Guidelines for Integral Constant Expressions</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs.html>各ライブラリの翻訳ドキュメント</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/compatibility.html>Boost.Compatibilty ライブラリ</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/mem_fn.html>mem_fn.hpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/static_assert.html>§ヘッダファイル(Header) &lt;[boost/static_assert.hpp](http://www.boost.org/doc/libs/1_31_0/boost/static_assert.hpp)&gt;</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/type_traits.html>Header &lt;[boost/type_traits.hpp](http://www.boost.org/doc/libs/1_31_0/boost/type_traits.hpp)&gt;</a> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/array.html>Array wrapper library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/array/array.html>arrayクラス, 固定サイズ配列のSTLコンテナ</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/array/array.hpp.html>array.hpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/array/array1.cpp.html>array1.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/array/array2.cpp.html>array2.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/array/array3.cpp.html>array3.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/array/array4.cpp.html>array4.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/array/array5.cpp.html>array5.cpp</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/bind.html>bind.hpp</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/bind/bind_as_compose.cpp.html>bind_as_compose.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/bind/ref.html>ref.hpp</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/compose.html>非推奨: Compose library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/compose/compose.html>Compose Function Object Adapters</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/compose/compose.hpp.html>boost/compose.hpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/compose/compose1.cpp.html>compose1.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/compose/compose2.cpp.html>compose2.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/compose/compose3.cpp.html>compose3.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/compose/compose4.cpp.html>compose4.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/compose/print.hpp.html>libs/compose/print.hpp</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/concept_check.html>The Boost Concept Check Library (BCCL)</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/concept_check/bibliography.html>参考文献</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/concept_check/concept_covering.html>コンセプトの充当化と原型</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/concept_check/creating_concepts.html>コンセプト・チェック用クラスの作成</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/concept_check/implementation.html>コンセプト・チェックの実装</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/concept_check/prog_with_concepts.html>Programming with Concepts</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/concept_check/reference.html>リファレンス</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/concept_check/stl_concept_check.cpp.html>libs/concept_check/stl_concept_check.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/concept_check/stl_concept_covering.cpp.html>libs/concept_check/stl_concept_covering.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/concept_check/using_concept_check.html>コンセプト・チェックの利用</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/conversion.html>Boost Conversion Library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/conversion/cast.html>Header boost/cast.hpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/conversion/cast_test.cpp.html>libs/conversion/cast_test.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/conversion/lexical_cast.html>Header boost/lexical_cast.hpp</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/date_time.html>Boost Date-Time Library Documentation</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/DesignGoals.html>全体的な設計の目標</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/basic_terms.html>Date-Timeの専門用語</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/build_info.html>Date-Time Build-Compiler Information</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/calculations.html>Date-Time Concepts - 計算</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/class_date.html>gregorian::date</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/class_date_duration.html>gregorian::date_duration</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/class_date_period.html>gregorian::date_period</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/class_gregorian_calendar.html>gregorian::gregorian_calendar</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/class_ptime.html>posix_time::ptime Documentation</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/class_time_duration.html>posix_time::time_duration</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/class_time_period.html>posix_time::time_period</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/date_algorithms.html>Date Generators / Algorithms</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/date_iterators.html>gregorian::date iterators</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/dates_as_strings.cpp.html>dates_as_strings.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/days_alive.cpp.html>days_alive.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/days_till_new_year.cpp.html>days_till_new_year.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/gregorian.html>Gregorian Date System Documentation</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/local_time_adjust.html>Local Time Adjustment</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/local_utc_conversion.cpp.html>local_utc_conversion.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/period_calc.cpp.html>period_calc.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/posix_time.html>Posix Time System Documentation</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/print_holidays.cpp.html>print_holidays.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/print_hours.cpp.html>print_hours.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/print_month.cpp.html>print_month.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/references.html>参考文献</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/time_iterators.html>posix_time::time iterators</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/time_math.cpp.html>time_math.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/time_periods.cpp.html>time_periods.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/date_time/tradeoffs.html>トレードオフ:安定性、予測性と近似</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/disjoint_sets.html>Disjoint Sets(互いに素な集合)</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/disjoint_sets/bibliography.html>参考文献</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/format.html>Boost Format library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/format/choices.html>Type-safe 'printf-like' format class</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/format/format.html>The Boost Format library</a> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> example <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/format/example/sample_advanced.cpp.html>libs/format/example/sample_advanced.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/format/example/sample_formats.cpp.html>libs/format/example/sample_formats.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/format/example/sample_new_features.cpp.html>libs/format/example/sample_new_features.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/format/example/sample_userType.cpp.html>libs/format/example/sample_userType.cpp</a> </li> </ul> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/function.html>Header `<boost/function.hpp>`</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/function/faq.html>boost::function FAQ</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/function/reference.html>Boost.Function Reference Manual</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/function/tutorial.html>Boost.Function Tutorial</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/functional.html>Improved Function Object Adapters</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/functional/binders.html>Binders</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/functional/function_test.cpp.html>libs/functional/function_test.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/functional/function_traits.html>Function Object Traits</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/functional/mem_fun.html>Member Function Adapters</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/functional/negators.html>Negators</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/functional/ptr_fun.html>Function Pointer Adapters</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/graph.html>the Boost Graph Library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/AdjacencyGraph.html>AdjacencyGraph</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/AdjacencyMatrix.html>AdjacencyMatrix</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/BFSVisitor.html>BFS(幅優先探査)Visitor Concept</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/BasicMatrix.html>BasicMatrix</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/BellmanFordVisitor.html>Bellman Ford Visitor Concept</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/BidirectionalGraph.html>BidirectionalGraph</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/Buffer.html>Buffer Concept</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/ColorValue.html>ColorValue</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/DFSVisitor.html>DFS Visitor Concept</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/DijkstraVisitor.html>Dijkstra Visitor Concept</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/EdgeListGraph.html>EdgeListGraph</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/EdgeMutableGraph.html>Edge Mutable Graph</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/EventVisitor.html>EventVisitor Concept</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/EventVisitorList.html>EventVisitorList Concept</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/acknowledgements.html>謝辞</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/adjacency_iterator.html>Adjacency Iterator Adaptor</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/adjacency_list.html>adjacency_list</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/adjacency_list_traits.html>adjacency_list_traits</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/adjacency_matrix.html>adjacency_matrix</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/bandwidth.html>bandwidth</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/bellman_ford_shortest_paths.html>bellman_ford_shortest_paths</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/bellman_visitor.html>bellman_visitor&lt;EventVisitorList&gt;</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/bfs_visitor.html>bfs_visitor&lt;EventVisitorList&gt;</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/bgl_named_params.html>bgl_named_params&lt;Param, Type, Rest&gt;</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/bibliography.html>参考文献</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/breadth_first_search.html>breadth_first_search</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/breadth_first_visit.html>breadth_first_visit</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/connected_components.html>connected_components</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/constructing_algorithms.html>BGLでグラフアルゴリズムを構築する</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/copy_graph.html>copy_graph</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/cuthill_mckee_ordering.html>cuthill_mckee_ordering</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/dag_shortest_paths.html>dag_shortest_paths</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/depth_first_search.html>depth_first_search</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/depth_first_visit.html>depth_first_visit</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/dfs_visitor.html>dfs_visitor&lt;EventVisitorList&gt;</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/dijkstra_shortest_paths.html>dijkstra_shortest_paths</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/dijkstra_visitor.html>dijkstra_visitor&lt;EventVisitorList&gt;</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/distance_recorder.html>distance_recorder&lt;DistanceMap, EventTag&gt;</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/edge_list.html>edge_list&lt;EdgeIterator, ValueType, DiffType&gt;</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/edmunds_karp_max_flow.html>edmunds_karp_max_flow</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/exception.html>boost/graph/exception.hpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/graph_theory_review.html>基本的なグラフ理論の復習</a> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> examples <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/bellman-example.cpp.html>libs/graph/example/bellman-example.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/bfs-example.cpp.html>libs/graph/example/bfs-example.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/bfs-example2.cpp.html>libs/graph/example/bfs-example2.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/bfs.cpp.html>libs/graph/example/bfs.cpp.md</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/connected_components.cpp.html>libs/graph/example/connected_components.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/cuthill_mckee_ordering.cpp.html>libs/graph/example/cuthill_mckee_ordering.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/dag_shortest_paths.cpp.html>libs/graph/example/dag_shortest_paths.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/dave.cpp.html>libs/graph/example/dave.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/dfs-example.cpp.html>libs/graph/example/dfs-example.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/dfs_parenthesis.cpp.html>libs/graph/example/dfs_parenthesis.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/dijkstra-example.cpp.html>libs/graph/example/dijkstra-example.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/edmunds-karp-eg.cpp.html>libs/graph/example/edmunds-karp-eg.cpp</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/graph/examples/family-tree-eg.cpp.html>libs/graph/example/family-tree-eg.cpp</a> </li> </ul> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> io <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/io/index.html>Boost Input/Output Library</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/io/ios_state.html>Header &lt;boost/io/ios_state.hpp&gt;</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/lambda.html>The Boost Lambda Library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/lambda/apa.html>A. Rationale for some of the design decisions</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/lambda/ar01s02.html>2. Getting Started</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/lambda/ar01s03.html>3. Introduction</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/lambda/ar01s04.html>4. Using the library</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/lambda/ar01s05.html>5. Lambda expressions in details</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/lambda/ar01s06.html>6. Extending return type deduction system</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/lambda/ar01s07.html>7. Practical considerations</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/lambda/ar01s08.html>8. Relation to other Boost libraries</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/lambda/ar01s09.html>9. Contributors</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/lambda/bi01.html>Bibliography</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/math.html>Boost Math Library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/math/common_factor.html>Greatest Common Divisor & Least Common Multiple</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/math/octonion.html>Class octonion</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/math/quaternion.html>Class quaternion Documentation</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/math/special_functions.html>Special Functions Documentation</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/multi_array.html>Boost.MultiArray</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/multi_array/user.html>Boost 多次元配列ライブラリ (Boost.MultiArray)</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/pool.html>Boost Pool Library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/concepts.html>Poolの概念</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/copyright.html>Pool Copyright</a> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> implementation <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/alignment.html>アラインメント保証</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/ct_gcd_lcm.html>ct_gcd_lcm - コンパイル時 GCD および LCM</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/for.html>for - m4 FOR Macro</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/gcd_lcm.html>gcd_lcm - GCD and LCM</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/guard.html>guard - Auto-lock/unlock-er</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/mutex.html>mutex - Mutex</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/object_pool.html>Object Pool Implementation</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/pool.html>Pool の実装</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/pool_alloc.html>pool_alloc - Boost Pool Standard Allocators Implementation</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/pool_construct.html>Object Pool Constructors Generator</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/simple_segregated_storage.html>単純分離記憶域の実装</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/singleton.html>singleton - Singleton</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/implementation/singleton_pool.html>Singleton Pool の実装</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/pool/interfaces.html>Boost Pool Interfaces</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/interfaces/object_pool.html>object_pool - Boost Object Pool Allocator</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/interfaces/pool.html>Pool</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/interfaces/pool_alloc.html>pool_alloc - Boost Pool Standard Allocators</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/interfaces/simple_segregated_storage.html>単純分離記憶域</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/interfaces/singleton_pool.html>Singleton Pool</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/pool/interfaces/user_allocator.html>User Allocators</a> </li> </ul> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/preprocessor.html>Boost Preprocessor Library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/bibliography.html>参考文献</a> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> data <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/data/arrays.html>Arrays</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/data/lists.html>Lists</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/data/sequences.html>Sequences</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/data/tuples.html>Tuples</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> ref <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/add.html>BOOST_PP_ADD</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/add_d.html>BOOST_PP_ADD_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/and.html>BOOST_PP_AND</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/apply.html>BOOST_PP_APPLY</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_data.html>BOOST_PP_ARRAY_DATA</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_elem.html>BOOST_PP_ARRAY_ELEM</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_insert.html>BOOST_PP_ARRAY_INSERT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_insert_d.html>BOOST_PP_ARRAY_INSERT_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_pop_back.html>BOOST_PP_ARRAY_POP_BACK</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_pop_back_z.html>BOOST_PP_ARRAY_POP_BACK_Z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_pop_front.html>BOOST_PP_ARRAY_POP_FRONT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_pop_front_z.html>BOOST_PP_ARRAY_POP_FRONT_Z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_push_back.html>BOOST_PP_ARRAY_PUSH_BACK</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_push_front.html>BOOST_PP_ARRAY_PUSH_FRONT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_remove.html>BOOST_PP_ARRAY_REMOVE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_remove_d.html>BOOST_PP_ARRAY_REMOVE_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_replace.html>BOOST_PP_ARRAY_REPLACE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_replace_d.html>BOOST_PP_ARRAY_REPLACE_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_reverse.html>BOOST_PP_ARRAY_REVERSE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/array_size.html>BOOST_PP_ARRAY_SIZE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/assert.html>BOOST_PP_ASSERT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/assert_msg.html>BOOST_PP_ASSERT_MSG</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/assign_slot.html>BOOST_PP_ASSIGN_SLOT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/bitand.html>BOOST_PP_BITAND</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/bitnor.html>BOOST_PP_BITNOR</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/bitor.html>BOOST_PP_BITOR</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/bitxor.html>BOOST_PP_BITXOR</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/bool.html>BOOST_PP_BOOL</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/cat.html>BOOST_PP_CAT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/comma.html>BOOST_PP_COMMA</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/comma_if.html>BOOST_PP_COMMA_IF</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/compl.html>BOOST_PP_COMPL</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/config_extended_line_info.html>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/dec.html>BOOST_PP_DEC</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/deduce_d.html>BOOST_PP_DEDUCE_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/deduce_r.html>BOOST_PP_DEDUCE_R</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/deduce_z.html>BOOST_PP_DEDUCE_Z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/div.html>BOOST_PP_DIV</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/div_d.html>BOOST_PP_DIV_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/empty.html>BOOST_PP_EMPTY</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum.html>BOOST_PP_ENUM</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_binary_params.html>BOOST_PP_ENUM_BINARY_PARAMS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_binary_params_z.html>BOOST_PP_ENUM_BINARY_PARAMS_Z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_params.html>BOOST_PP_ENUM_PARAMS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_params_with_a_default.html>BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_params_with_defaults.html>BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_params_z.html>BOOST_PP_ENUM_PARAMS_Z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_shifted.html>BOOST_PP_ENUM_SHIFTED</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_shifted_params.html>BOOST_PP_ENUM_SHIFTED_PARAMS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_shifted_params_z.html>BOOST_PP_ENUM_SHIFTED_PARAMS_Z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_shifted_z.html>BOOST_PP_ENUM_SHIFTED_z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_trailing.html>BOOST_PP_ENUM_TRAILING</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_trailing_binary_params.html>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_trailing_binary_params_z.html>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_trailing_params.html>BOOST_PP_ENUM_TRAILING_PARAMS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_trailing_params_z.html>BOOST_PP_ENUM_TRAILING_PARAMS_Z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_trailing_z.html>BOOST_PP_ENUM_TRAILING_z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/enum_z.html>BOOST_PP_ENUM_z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/equal.html>BOOST_PP_EQUAL</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/equal_d.html>BOOST_PP_EQUAL_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/expand.html>BOOST_PP_EXPAND</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/expr_if.html>BOOST_PP_EXPR_IF</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/expr_iif.html>BOOST_PP_EXPR_IIF</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/filename_x.html>BOOST_PP_FILENAME_x</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/for.html>BOOST_PP_FOR</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/for_r.html>BOOST_PP_FOR_r</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/frame_finish.html>BOOST_PP_FRAME_FINISH</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/frame_flags.html>BOOST_PP_FRAME_FLAGS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/frame_iteration.html>BOOST_PP_FRAME_ITERATION</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/frame_start.html>BOOST_PP_FRAME_START</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/greater.html>BOOST_PP_GREATER</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/greater_d.html>BOOST_PP_GREATER_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/greater_equal.html>BOOST_PP_GREATER_EQUAL</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/greater_equal_d.html>BOOST_PP_GREATER_EQUAL_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/identity.html>BOOST_PP_IDENTITY</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/if.html>BOOST_PP_IF</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/iif.html>BOOST_PP_IIF</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/inc.html>BOOST_PP_INC</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/include_self.html>BOOST_PP_INCLUDE_SELF</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/indirect_self.html>BOOST_PP_INDIRECT_SELF</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/intercept.html>BOOST_PP_INTERCEPT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/is_iterating.html>BOOST_PP_IS_ITERATING</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/is_selfish.html>BOOST_PP_IS_SELFISH</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/iterate.html>BOOST_PP_ITERATE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/iteration.html>BOOST_PP_ITERATION</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/iteration_depth.html>BOOST_PP_ITERATION_DEPTH</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/iteration_finish.html>BOOST_PP_ITERATION_FINISH</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/iteration_flags.html>BOOST_PP_ITERATION_FLAGS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/iteration_limits.html>BOOST_PP_ITERATION_LIMITS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/iteration_params_x.html>BOOST_PP_ITERATION_PARAMS_x</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/iteration_start.html>BOOST_PP_ITERATION_START</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/less.html>BOOST_PP_LESS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/less_d.html>BOOST_PP_LESS_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/less_equal.html>BOOST_PP_LESS_EQUAL</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/less_equal_d.html>BOOST_PP_LESS_EQUAL_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/limit_dim.html>BOOST_PP_LIMIT_DIM</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/limit_for.html>BOOST_PP_LIMIT_FOR</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/limit_iteration.html>BOOST_PP_LIMIT_ITERATION</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/limit_iteration_dim.html>BOOST_PP_LIMIT_ITERATION_DIM</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/limit_mag.html>BOOST_PP_LIMIT_MAG</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/limit_repeat.html>BOOST_PP_LIMIT_REPEAT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/limit_slot_count.html>BOOST_PP_LIMIT_SLOT_COUNT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/limit_slot_sig.html>BOOST_PP_LIMIT_SLOT_SIG</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/limit_tuple.html>BOOST_PP_LIMIT_TUPLE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/limit_while.html>BOOST_PP_LIMIT_WHILE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/line.html>BOOST_PP_LINE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_append.html>BOOST_PP_LIST_APPEND</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_append_d.html>BOOST_PP_LIST_APPEND_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_at.html>BOOST_PP_LIST_AT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_at_d.html>BOOST_PP_LIST_AT_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_cat.html>BOOST_PP_LIST_CAT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_cat_d.html>BOOST_PP_LIST_CAT_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_cons.html>BOOST_PP_LIST_CONS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_enum.html>BOOST_PP_LIST_ENUM</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_enum_r.html>BOOST_PP_LIST_ENUM_R</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_filter.html>BOOST_PP_LIST_FILTER</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_filter_d.html>BOOST_PP_LIST_FILTER_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_first.html>BOOST_PP_LIST_FIRST</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_first_n.html>BOOST_PP_LIST_FIRST_N</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_first_n_d.html>BOOST_PP_LIST_FIRST_N_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_fold_left.html>BOOST_PP_LIST_FOLD_LEFT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_fold_left_2nd.html>BOOST_PP_LIST_FOLD_LEFT_2ND</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_fold_left_2nd_d.html>BOOST_PP_LIST_FOLD_LEFT_2ND_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_fold_left_d.html>BOOST_PP_LIST_FOLD_LEFT_d</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_fold_right.html>BOOST_PP_LIST_FOLD_RIGHT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_fold_right_2nd.html>BOOST_PP_LIST_FOLD_RIGHT_2ND</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_fold_right_2nd_d.html>BOOST_PP_LIST_FOLD_RIGHT_2ND_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_fold_right_d.html>BOOST_PP_LIST_FOLD_RIGHT_d</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_for_each.html>BOOST_PP_LIST_FOR_EACH</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_for_each_i.html>BOOST_PP_LIST_FOR_EACH_I</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_for_each_i_r.html>BOOST_PP_LIST_FOR_EACH_I_R</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_for_each_product.html>BOOST_PP_LIST_FOR_EACH_PRODUCT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_for_each_product_r.html>BOOST_PP_LIST_FOR_EACH_PRODUCT_R</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_for_each_r.html>BOOST_PP_LIST_FOR_EACH_R</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_is_cons.html>BOOST_PP_LIST_IS_CONS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_is_nil.html>BOOST_PP_LIST_IS_NIL</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_nil.html>BOOST_PP_LIST_NIL</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_rest.html>BOOST_PP_LIST_REST</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_rest_n.html>BOOST_PP_LIST_REST_N</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_rest_n_d.html>BOOST_PP_LIST_REST_N_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_reverse.html>BOOST_PP_LIST_REVERSE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_reverse_d.html>BOOST_PP_LIST_REVERSE_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_size.html>BOOST_PP_LIST_SIZE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_size_d.html>BOOST_PP_LIST_SIZE_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_to_tuple.html>BOOST_PP_LIST_TO_TUPLE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_to_tuple_r.html>BOOST_PP_LIST_TO_TUPLE_R</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_transform.html>BOOST_PP_LIST_TRANSFORM</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/list_transform_d.html>BOOST_PP_LIST_TRANSFORM_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/local_iterate.html>BOOST_PP_LOCAL_ITERATE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/local_limits.html>BOOST_PP_LOCAL_LIMITS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/local_macro.html>BOOST_PP_LOCAL_MACRO</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/lparen.html>BOOST_PP_LPAREN</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/lparen_if.html>BOOST_PP_LPAREN_IF</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/max.html>BOOST_PP_MAX</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/max_d.html>BOOST_PP_MAX_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/min.html>BOOST_PP_MIN</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/min_d.html>BOOST_PP_MIN_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/mod.html>BOOST_PP_MOD</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/mod_d.html>BOOST_PP_MOD_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/mul.html>BOOST_PP_MUL</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/mul_d.html>BOOST_PP_MUL_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/nil.html>BOOST_PP_NIL</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/nor.html>BOOST_PP_NOR</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/not.html>BOOST_PP_NOT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/not_equal.html>BOOST_PP_NOT_EQUAL</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/not_equal_d.html>BOOST_PP_NOT_EQUAL_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/or.html>BOOST_PP_OR</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/relative_finish.html>BOOST_PP_RELATIVE_FINISH</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/relative_flags.html>BOOST_PP_RELATIVE_FLAGS</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/relative_iteration.html>BOOST_PP_RELATIVE_ITERATION</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/relative_start.html>BOOST_PP_RELATIVE_START</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/repeat.html>BOOST_PP_REPEAT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/repeat_1st.html>BOOST_PP_REPEAT_1ST</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/repeat_2nd.html>BOOST_PP_REPEAT_2ND</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/repeat_3rd.html>BOOST_PP_REPEAT_3RD</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/repeat_from_to.html>BOOST_PP_REPEAT_FROM_TO</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/repeat_from_to_1st.html>BOOST_PP_REPEAT_FROM_TO_1ST</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/repeat_from_to_2nd.html>BOOST_PP_REPEAT_FROM_TO_2ND</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/repeat_from_to_3rd.html>BOOST_PP_REPEAT_FROM_TO_3RD</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/repeat_from_to_d.html>BOOST_PP_REPEAT_FROM_TO_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/repeat_from_to_d_z.html>BOOST_PP_REPEAT_FROM_TO_D_z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/repeat_from_to_z.html>BOOST_PP_REPEAT_FROM_TO_z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/repeat_z.html>BOOST_PP_REPEAT_z</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/rparen.html>BOOST_PP_RPAREN</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/rparen_if.html>BOOST_PP_RPAREN_IF</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/slot.html>BOOST_PP_SLOT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/stringize.html>BOOST_PP_STRINGIZE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/sub.html>BOOST_PP_SUB</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/sub_d.html>BOOST_PP_SUB_D</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/tuple_eat.html>BOOST_PP_TUPLE_EAT</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/tuple_elem.html>BOOST_PP_TUPLE_ELEM</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/tuple_rem.html>BOOST_PP_TUPLE_REM</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/tuple_reverse.html>BOOST_PP_TUPLE_REVERSE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/tuple_to_list.html>BOOST_PP_TUPLE_TO_LIST</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/value.html>BOOST_PP_VALUE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/while.html>BOOST_PP_WHILE</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/while_d.html>BOOST_PP_WHILE_d</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/ref/xor.html>BOOST_PP_XOR</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> terms <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/terms/evaluated.html>評価済み引数</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/terms/named_external.html>名前付けされた外部引数</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> topics <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/topics/evaluated_slots.html>Evaluated Slots</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/topics/file_iteration.html>File Iteration</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/topics/incompatible.html>非互換性</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/topics/local_iteration.html>Local Iteration</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/topics/motivation.html>動機</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/topics/problems.html>プリプロセッサに関する既知の問題</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/topics/reentrancy.html>Reentrancy</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/preprocessor/topics/techniques.html>テクニック集</a> </li> </ul> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/random.html>Boost Random Number Library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/random/random-concepts.html>Random Number Generator Library Concepts</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/rational.html>Rational Number Library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/rational/rational.html>Rational Numbers</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/regex.html>regex++, Index</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/regex/appendix.html>Regex++, Appendices.</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/regex/faq.html>Regex++, FAQ.</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/regex/format_string.html>Regex++, Format String Reference.</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/regex/hl_ref.html>Class RegEx</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/regex/introduction.html><a id="intro">Introduction</a></a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/regex/posix_ref.html>Regex++, POSIX API Reference</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/regex/syntax.html>Regex++, Regular Expression Syntax</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/regex/template_class_ref.html>Regex++ template class reference.</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/regex/traits_class_ref.html>Regex++, Traits Class Reference.</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/signals.html>Boost.Signals</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/signals/design.html>Boost.Signals 設計</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/signals/design_rationale.html>Boost.Signals 設計の論拠</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/signals/faq.html>Boost.Signals FAQ</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/signals/history.html>Boost.Signals Revision History</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/signals/tutorial.html>Boost.Signals チュートリアル</a> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> reference <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/signals/reference/connection.html>Boost.Signals: ヘッダ &lt;[boost/signals/connection.hpp](http://www.boost.org/doc/libs/1_31_0/boost/sig</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/signals/reference/last_value.html>Boost.Signals: クラステンプレート `last_value`</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/signals/reference/signal.html>Boost.Signals: ヘッダ &lt;boost/signal.hpp&gt;</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/signals/reference/signalN.html>Boost.Signals: クラステンプレート `signalN`</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/signals/reference/slot.html>Boost.Signals: クラステンプレート slot</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/signals/reference/trackable.html>Boost.Signals: クラス `trackable`</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/signals/reference/visit_each.html>関数テンプレート `visit_each`</a> </li> </ul> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/smart_ptr.html>Smart Pointer Library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/smart_ptr/compatibility.html>Smart Pointer Changes</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/smart_ptr/scoped_array.html>scoped_array class template</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/smart_ptr/scoped_ptr.html>scoped_ptr class template</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/smart_ptr/shared_array.html>shared_array class template</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/smart_ptr/shared_ptr.html>shared_ptr class template</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/smart_ptr/smart_ptr.html>Smart Pointers</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/smart_ptr/weak_ptr.html>weak_ptr class template</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/boost_docs/libs/tuple.html>The Boost Tuple Library</a> <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/tuple/design_decisions_rationale.html>Tuple Library : design decisions rationale</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/tuple/tuple_advanced_interface.html>Tuple library advanced features</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> utility <ul> <li style="display: none"> <a href=../archive/boost_docs/libs/utility/Assignable.html>Assignable</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/utility/CopyConstructible.html>Copy Constructible</a> </li> <li style="display: none"> <a href=../archive/boost_docs/libs/utility/MultiPassInputIterator.html>MultiPassInputIterator</a> </li> </ul> </li> </ul> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/cpp_online_reading.html>C++オンライン読書会</a> <ul> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_001.html>第1回 C++Now! 読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_002.html>第2回 C++Now! 読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_003.html>第3回 C++Now! 読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_004.html>第4回 C++Now! 読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_005.html>第5回 C++オンライン読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_006.html>第6回 C++オンライン読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_007.html>第7回 C++オンライン読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_008.html>第8回 C++オンライン読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_009.html>第9回 C++オンライン読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_010.html>第10回 C++オンライン読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_011.html>第11回 C++オンライン読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_012.html>第12回 C++オンライン読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_013.html>第13回 C++オンライン読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_014.html>第14回 C++オンライン読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/archive_015.html>第15回 C++オンライン読書会</a> </li> <li style="display: none"> <a href=../archive/cpp_online_reading/request.html>読みたいC++資料リクエスト</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../archive/propose.html>提案予定プロジェクト</a> <ul> <li style="display: none"> <a href=../archive/propose/templ_rec_max.html>テンプレートの再帰上限数workaround(rejected)</a> </li> </ul> </li> </ul> </li> <li class="parent_li active"> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-minus"></i></span> <a href=../boostcon.html>BoostCon</a> <ul> <li> <a href=../boostcon/2010.html>BoostCon 2010</a> </li> <li> <a href=../boostcon/2011.html>BoostCon 2011</a> </li> </ul> </li> <li class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../cppnow.html>C++Now!</a> <ul> <li style="display: none"> <a href=../cppnow/2012.html>C++Now! 2012</a> </li> <li style="display: none"> <a href=../cppnow/2013.html>C++Now! 2013</a> </li> <li style="display: none"> <a href=../cppnow/2014.html>C++Now! 2014</a> </li> <li style="display: none"> <a href=../cppnow/2015.html>C++Now! 2015</a> </li> <li style="display: none"> <a href=../cppnow/2016.html>C++Now! 2016</a> </li> <li style="display: none"> <a href=../cppnow/2017.html>C++Now! 2017</a> </li> </ul> </li> <li class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../document.html>ドキュメント</a> <ul> <li style="display: none"> <a href=../document/boost-range-algorithm-kansu-no-susume.html>Boost.Range アルゴリズム関数のすすめ</a> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../document/boostserialization.html>Boost.Serialization</a> <ul> <li style="display: none"> <a href=../document/boostserialization/overview.html>Overview</a> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../document/boostserialization/other-classses.html>Other Classses</a> <ul> <li style="display: none"> <a href=../document/boostserialization/other-classses/extended_type_info.html>extended_type_info</a> </li> <li style="display: none"> <a href=../document/boostserialization/other-classses/singleton.html>singleton</a> </li> <li style="display: none"> <a href=../document/boostserialization/other-classses/void_cast.html>void_cast</a> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../document/boostserialization/reference.html>Reference</a> <ul> <li style="display: none"> <a href=../document/boostserialization/reference/archive-concepts.html>Archive Concepts</a> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../document/boostserialization/reference/serializableconcept.html>SerializableConcept</a> <ul> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../document/boostserialization/reference/serializableconcept/class-serialization-traits.html>Class Serialization Traits</a> <ul> <li style="display: none"> <a href=../document/boostserialization/reference/serializableconcept/class-serialization-traits/export-key.html>Export Key</a> </li> </ul> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../document/boostserialization/reference/special-considerations.html>Special Considerations</a> <ul> <li style="display: none"> <a href=../document/boostserialization/reference/special-considerations/exporting-class-serialization.html>Exporting Class Serialization</a> </li> </ul> </li> </ul> </li> </ul> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../document/version.html>リリースノート</a> <ul> <li style="display: none"> <a href=../document/version/1_45_0.html>Boost 1.45.0 リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_46_0.html>Boost 1.46.0 リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_46_1.html>Boost 1.46.1リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_47_0.html>Boost 1.47.0 リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_48_0.html>Boost 1.48.0 リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_49_0.html>Boost 1.49.0 リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_50_0.html>Boost 1.50.0 リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_51_0.html>Boost 1.51.0 リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_52_0.html>Boost 1.52.0 リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_53_0.html>Boost 1.53.0 リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_54_0.html>Boost 1.54.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_55_0.html>Boost 1.55.0 リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_56_0.html>Boost 1.56.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_57_0.html>Boost 1.57.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_58_0.html>Boost 1.58.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_59_0.html>Boost 1.59.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_60_0.html>Boost 1.60.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_61_0.html>Boost 1.61.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_62_0.html>Boost 1.62.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_63_0.html>Boost 1.63.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_64_0.html>Boost 1.64.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_65_0.html>Boost 1.65.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_65_1.html>Boost 1.65.1リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_66_0.html>Boost 1.66.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_67_0.html>Boost 1.67.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_68_0.html>Boost 1.68.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_69_0.html>Boost 1.69.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_70_0.html>Boost 1.70.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_71_0.html>Boost 1.71.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_72_0.html>Boost 1.72.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_73_0.html>Boost 1.73.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_74_0.html>Boost 1.74.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_75_0.html>Boost 1.75.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_76_0.html>Boost 1.76.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_77_0.html>Boost 1.77.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_78_0.html>Boost 1.78.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_79_0.html>Boost 1.79.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_80_0.html>Boost 1.80.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_81_0.html>Boost 1.81.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_82_0.html>Boost 1.82.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_83_0.html>Boost 1.83.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_84_0.html>Boost 1.84.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_85_0.html>Boost 1.85.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_86_0.html>Boost 1.86.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_87_0.html>Boost 1.87.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/1_88_0.html>Boost 1.88.0リリースノート</a> </li> <li style="display: none"> <a href=../document/version/template.html>Boost 1.xx.0リリースノート</a> </li> </ul> </li> </ul> </li> <li class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> editors_doc <ul> <li style="display: none"> <a href=../editors_doc/start_editing.html>boostjpを編集するには</a> </li> </ul> </li> <li class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../study_meeting.html>Boost.勉強会</a> <ul> <li style="display: none"> <a href=../study_meeting/code_of_conduct.html>行動規範(Code of Conduct)</a> </li> <li style="display: none"> <a href=../study_meeting/idea.html>ネタ帳</a> </li> <li style="display: none"> <a href=../study_meeting/reversed_index.html>ライブラリ逆引き</a> </li> <li style="display: none"> <a href=../study_meeting/study1.html>Boost.勉強会 #1</a> </li> <li style="display: none"> <a href=../study_meeting/study10.html>Boost.勉強会 #10 東京</a> </li> <li style="display: none"> <a href=../study_meeting/study11.html>Boost.勉強会 #11 東京</a> </li> <li style="display: none"> <a href=../study_meeting/study12.html>Boost.勉強会 #12 大阪</a> </li> <li style="display: none"> <a href=../study_meeting/study13.html>Boost.勉強会 #13 仙台</a> </li> <li style="display: none"> <a href=../study_meeting/study14.html>Boost.勉強会 #14 東京</a> </li> <li style="display: none"> <a href=../study_meeting/study15.html>Boost.勉強会 #15 札幌</a> </li> <li style="display: none"> <a href=../study_meeting/study16.html>Boost.勉強会 #16 大阪</a> </li> <li style="display: none"> <a href=../study_meeting/study17.html>Boost.勉強会 #17 東京</a> </li> <li style="display: none"> <a href=../study_meeting/study18.html>Boost.勉強会 #18 大阪</a> </li> <li style="display: none"> <a href=../study_meeting/study19.html>Boost.勉強会 #19 東京</a> </li> <li style="display: none"> <a href=../study_meeting/study2.html>Boost.勉強会 #2</a> </li> <li style="display: none"> <a href=../study_meeting/study20.html>Boost.勉強会 #20 東京</a> </li> <li style="display: none"> <a href=../study_meeting/study21.html>Boost.勉強会 #21 札幌</a> </li> <li style="display: none"> <a href=../study_meeting/study3.html>Boost.勉強会 #3 関西</a> </li> <li style="display: none"> <a href=../study_meeting/study4.html>Boost.勉強会 #4</a> </li> <li style="display: none"> <a href=../study_meeting/study5.html>Boost.勉強会 #5 名古屋</a> </li> <li style="display: none"> <a href=../study_meeting/study6.html>Boost.勉強会 #6 札幌</a> </li> <li style="display: none"> <a href=../study_meeting/study7.html>Boost.勉強会 #7 東京</a> </li> <li style="display: none"> <a href=../study_meeting/study8.html>Boost.勉強会 #8 大阪</a> </li> <li style="display: none"> <a href=../study_meeting/study9.html>Boost.勉強会 #9 つくば</a> </li> <li style="display: none"> <a href=../study_meeting/what.html>Boost.勉強会はなにであって、なにでないか</a> </li> <li style="display: none"> <a href=../study_meeting/year-end-party2010-nagoya.html>Boost.忘年会 2010@名古屋</a> </li> <li style="display: none"> <a href=../study_meeting/year-end-party2010-sapporo.html>Boost.忘年会 2010@sapporo</a> </li> <li style="display: none"> <a href=../study_meeting/year-end-party2010-tokyo.html>Boost.忘年会 2010@東京</a> </li> </ul> </li> <li class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../tips.html>Boost逆引きリファレンス</a> <ul> <li style="display: none"> <a href=../tips/array.html>配列</a> </li> <li style="display: none"> <a href=../tips/build.html>ビルドツール</a> </li> <li style="display: none"> <a href=../tips/build_link.html>ヘッダオンリー or ビルドが必要なライブラリ</a> </li> <li style="display: none"> <a href=../tips/circular_buffer.html>循環バッファ</a> </li> <li style="display: none"> <a href=../tips/config.html>コンパイラ間の差を吸収する</a> </li> <li style="display: none"> <a href=../tips/constcond_overload.html>コンパイル時条件によるオーバーロード</a> </li> <li style="display: none"> <a href=../tips/coroutine.html>コルーチン</a> </li> <li style="display: none"> <a href=../tips/cxx11-boost-mapping.html>C++11とBoostの対応付け</a> </li> <li style="display: none"> <a href=../tips/date_time.html>日付の計算</a> </li> <li style="display: none"> <a href=../tips/dynamic_assert.html>実行時アサート</a> </li> <li style="display: none"> <a href=../tips/dynamic_bitset.html>サイズを動的に変更できるビット集合</a> </li> <li style="display: none"> <a href=../tips/dynamic_regex.html>動的な正規表現</a> </li> <li style="display: none"> <a href=../tips/dynamic_type.html>動的型</a> </li> <li style="display: none"> <a href=../tips/filesystem.html>ファイル/ディレクトリ操作</a> </li> <li style="display: none"> <a href=../tips/finite_state_machine.html>有限状態マシン</a> </li> <li style="display: none"> <a href=../tips/foreach.html>for each文</a> </li> <li style="display: none"> <a href=../tips/format.html>文字列フォーマット</a> </li> <li style="display: none"> <a href=../tips/function.html>関数ポインタと関数オブジェクトを統一的に扱う</a> </li> <li style="display: none"> <a href=../tips/geometry.html>計算幾何</a> </li> <li style="display: none"> <a href=../tips/graph.html>グラフ</a> </li> <li style="display: none"> <a href=../tips/hashmap.html>ハッシュ表</a> </li> <li style="display: none"> <a href=../tips/ini.html>iniファイルの読み込み/書き込み</a> </li> <li style="display: none"> <a href=../tips/initialize.html>組み込み型を必ず初期化する</a> </li> <li style="display: none"> <a href=../tips/interval_arithmetic.html>区間演算</a> </li> <li style="display: none"> <a href=../tips/io_state.html>ストリームの状態を戻す</a> </li> <li style="display: none"> <a href=../tips/iterator.html>イテレータを作る</a> </li> <li style="display: none"> <a href=../tips/json.html>JSONの読み込み/書き込み</a> </li> <li style="display: none"> <a href=../tips/lambda.html>無名関数</a> </li> <li style="display: none"> <a href=../tips/linear-algebra.html>線形代数</a> </li> <li style="display: none"> <a href=../tips/list.html>リスト処理の遅延評価</a> </li> <li style="display: none"> <a href=../tips/lockfree-queue.html>ロックフリーキュー</a> </li> <li style="display: none"> <a href=../tips/lockfree-stack.html>ロックフリースタック</a> </li> <li style="display: none"> <a href=../tips/logging.html>ロギング</a> </li> <li style="display: none"> <a href=../tips/math.html>数学</a> </li> <li style="display: none"> <a href=../tips/memory_mapped_file.html>メモリマップドファイル</a> </li> <li style="display: none"> <a href=../tips/move.html>ムーブ可能なクラスを定義する</a> </li> <li style="display: none"> <a href=../tips/mpi.html>MPI による並列計算</a> </li> <li style="display: none"> <a href=../tips/multi_array.html>多次元配列</a> </li> <li style="display: none"> <a href=../tips/multi_index.html>コンテナに複数の並び順を持たせる</a> </li> <li style="display: none"> <a href=../tips/multiprec-float.html>多倍長浮動小数点数</a> </li> <li style="display: none"> <a href=../tips/multiprec-int.html>多倍長整数</a> </li> <li style="display: none"> <a href=../tips/named_parameter.html>名前付き引数</a> </li> <li style="display: none"> <a href=../tips/noncopyable.html>クラスをコピー不可にする</a> </li> <li style="display: none"> <a href=../tips/noncopyable_container.html>コピー不可なオブジェクトを持ちまわる</a> </li> <li style="display: none"> <a href=../tips/operators.html>演算子を自動定義する</a> </li> <li style="display: none"> <a href=../tips/optional.html>無効値の統一的な表現</a> </li> <li style="display: none"> <a href=../tips/parser.html>構文解析</a> </li> <li style="display: none"> <a href=../tips/partial_eval.html>カリー化/部分適用</a> </li> <li style="display: none"> <a href=../tips/priority_sort.html>優先順位を付けて並べ替える</a> </li> <li style="display: none"> <a href=../tips/program_options.html>コマンドラインオプションの定義/取得</a> </li> <li style="display: none"> <a href=../tips/random.html>乱数</a> </li> <li style="display: none"> <a href=../tips/scope_guard.html>スコープを抜ける際に実行されるブロック</a> </li> <li style="display: none"> <a href=../tips/serialize.html>シリアライズ</a> </li> <li style="display: none"> <a href=../tips/signals.html>シグナル/スロット</a> </li> <li style="display: none"> <a href=../tips/smart_ptr.html>リソースを自動的に解放する</a> </li> <li style="display: none"> <a href=../tips/static_assert.html>コンパイル時アサート</a> </li> <li style="display: none"> <a href=../tips/static_regex.html>静的な正規表現</a> </li> <li style="display: none"> <a href=../tips/statistics.html>統計処理</a> </li> <li style="display: none"> <a href=../tips/string_algo.html>文字列操作</a> </li> <li style="display: none"> <a href=../tips/thread.html>スレッド</a> </li> <li style="display: none"> <a href=../tips/timer.html>処理時間の計測</a> </li> <li style="display: none"> <a href=../tips/tuple.html>タプル</a> </li> <li style="display: none"> <a href=../tips/type_traits.html>型特性</a> </li> <li style="display: none"> <a href=../tips/unit_test.html>単体テスト</a> </li> <li style="display: none"> <a href=../tips/units.html>単位演算</a> </li> <li style="display: none"> <a href=../tips/uuid.html>オブジェクトにユニークなIDを付ける</a> </li> <li style="display: none"> <a href=../tips/variant.html>ユーザー定義型を扱える型安全な共用体</a> </li> <li style="display: none"> <a href=../tips/version.html>Boostのバージョンを調べる</a> </li> <li style="display: none"> <a href=../tips/xml.html>XMLの読み込み/書き込み</a> </li> <li style="display: none" class="parent_li "> <span class=treespan onclick="tree_onclick.call(this, event)"><i class="glyphicon glyphicon-plus"></i></span> <a href=../tips/network.html>ネットワーク</a> <ul> <li style="display: none"> <a href=../tips/network/tcp.html>ネットワーク - TCP</a> </li> </ul> </li> </ul> </li> </ul> </div> </div> </div> </div> </main> <footer class="footer navbar navbar-default"> <div class=container-fluid> <p><small> 本サイトの情報は、 <a href=https://creativecommons.org/licenses/by/3.0/deed.ja rel=nofollow>クリエイティブ・コモンズ 表示 3.0 非移植 ライセンス(CC BY)</a> の下に提供されています。 </small></p> </div> </footer> </body> <!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6. chromium.org/developers/how-tos/chrome-frame-getting-started --> <!--[if lt IE 7 ]>
<script src="https://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js"></script>
<script>
window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})
</script>
<![endif]--> </html>