SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Effective Modern C++
勉強会#1 Item 3, 4
星野 喬 (@starpoz)
サイボウズ・ラボ
2015-01-28
1
Item 3
Understand decltype.
2
decltypeの基本的なルール
• decltypeは通常、名前や式で与えたものの型
を返す
3
const int i = 0; // decltype(i) is const int.
bool f(const Widget& w); // decltype(w) is const Widget&,
// decltype(f) is
// bool(const Widget&)
struct Point {int x, y;}; // decltype(Point::x) is int.
Widget w; // decltype(w) is Widget.
f(w); // decltype(f(w)) is bool.
コンテナのoperator[]が返す型
• コンテナのoperator[]は通常T&を返すが、
std::vector<bool>はbool&を返さない
4
template <typename T>
struct my_vector {
T& operator[](size_t i);
};
my_vector<int>v; // decltype(v) is my_vector<int>.
v[0]; // decltype(v[0]) is int&.
std::vector<bool> w; // decltype(w) is std::vector<bool>.
w[0]; // decltype(w[0]) is
// std::_Bit_reference&.
// (using clang++)
operator[]の返す型を返す関数
• C++11:単文ラムダのみ返り値の型を推論
• C++14:任意のラムダ、関数で推論
5
// C++11
template <typename Container, typename Index>
auto authAndAccess(Container& c, Index i) -> decltype(c[i])
{
return c[i];
}
// C++14
template <typename Container, typename Index>
auto authAndAccess(Container& c, Index i) {
return c[i];
} これだと decltype(c[i]) 型にならない
autoとdecltype(auto)
• autoの部分の型を決定するときに参照情報は
無視される
6
//C++14
template <typename Container, typename Index>
auto authAndAccess(Container& c, Index i) {
return c[i];
}
std::deque<int> d;
authAndAccess(d, 5) = 10;
// compile error
// decltype(authAndAccess(d, 5)) is int.
autoとdecltype(auto) –cont.
• decltype(auto)を使えば参照情報は無視さ
れない
7
//C++14
template <typename Container, typename Index>
decltype(auto) authAndAccess(Container& c, Index i) {
return c[i];
}
std::deque<int> d;
authAndAccess(d, 5) = 10;
// decltype(authAndAccess(d, 5)) is int&.
変数宣言でのdecltype(auto)
• autoで無視される参照情報や
const/volatileが
decltype(auto)では無視されない
8
Widget w;
const Widget& cw = w;
auto myWidget1 = cw; // Widget.
decltype(auto) myWidget2 = cw; // const Widget&.
rvalueを渡せない
• constでないlvalue referenceで受ける引
数にrvalueは渡せない
9
template <typename Container, typename Index>
decltype(auto) authAndAccess(Container& c, Index i);
std::deque<std::string> makeStringDeque();
auto s = authAndAccess(makeStringDeque(), 5);
// compile error
Universal referenceを使う
• Perfect forwarding
10
//C++14
template <typename Container, typename Index>
decltype(auto) authAndAccess(Container&& c, Index i) {
return std::forward<Container>(c)[i];
}
//C++11
template <typename Container, typename Index>
auto authAndAccess(Container&& c, Index i) ->
decltype(std::forward<Container>c[i]);
std::deque<std::string> makeStringDeque();
auto s = authAndAccess(makeStringDequeu(), 5);
decltypeの特殊ルール
• decltype(lvalue expression)は必ず
lvalue referenceになる
11
int x = 0;
decltype(x) y1;
// x is name, so y1’s type is int.
decltype((x)) y2;
// (x) is lvalue expression, so y2’s type is int&.
decltypeの特殊ルール –cont.
• 関数の返り値型の推論も同様
12
decltype(auto) f1() {
int x = 0;
return x; // int
}
decltype(auto) f2() {
int x = 0;
return (x); // int&
} ローカル変数の参照を返してしまっている
Item 3 Things to Remember
• decltypeは大体は変数や式の型になる
• 型Tの名前以外のlvalue expressionについての
decltypeは型T&になる.
• C++14はdecltype(auto)をサポートし、
auto同様に初期化子から推論するが、
decltypeのルールに従う
13
Item 4
Know how to view
deduced types.
14
推論された型を知る3つの方法
• IDEを使う
• コンパイラを使う
• 型を表示するコードを書く
• typeid
• Boost TypeIndex
15
IDEを使う
• 変数にマウスカーソルを合わせれば型が分かる
16
const int x;
auto y = x; // int y
auto z = &x; // const int *z
IDEを使う –cont.
• 複雑な型だと分かりづらい
17
template <typename T>
void f(const T& param) {}
struct Widget {};
std::vector<Widget> createVec() { return {{}}; }
int main(){
const auto v = createVec();
f(&v[0]);
// void f<const std::_Simple_types<std::_Wrap_alloc<
// std::_Vec_base_types<Widget, std::allocator<Widget> >
// ::_Alloc>::value_type>::value_type *>(
// const std::_Simple_types<...>::value_type
// *const &param)
} vc2013だとこう表示される
コンパイラを使う
18
template <typename T>
class TD; // TD is Type Displayer.
const int x = 0;
auto y = x;
auto z = &x;
TD<decltype(y)> yType;
TD<decltype(z)> zType;
> clang++ -std=c++1y t.cpp
t.cpp:11:21: error: implicit instantiation of undefined
template 'TD<int>‘
...
t.cpp:12:21: error: implicit instantiation of undefined
template 'TD<const int *>‘
...
コンパイラを使う –cont.
19
std::map<std::string, std::vector<int>> m;
const auto v = m;
TD<decltype(m)> mType;
> clang++ -std=c++1y t.cpp
...
t.cpp:16:21: error: implicit instantiation of undefined
template
'TD<std::map<std::basic_string<char>, std::vector<int,
std::allocator<int> >,
std::less<std::basic_string<char> >,
std::allocator<std::pair<const std::basic_string<char>,
std::vector<int, std::allocator<int> > > > > >'
TD<decltype(m)> mType;
...
typeidを使う
• i: int
• P: pointer
• K: const
20
const int x = 0;
auto y = x;
auto z = &x;
std::cout << typeid(y).name() << std::endl;
std::cout << typeid(z).name() << std::endl;
> clang++ -sd=c++1y t.cpp && ./a.out
i
PKi
typeidを使う –cont.
21
struct Widget {};
std::vector<Widget> createVec() { return {{}}; }
template <typename T>
void f(const T& param){
std::cout << typeid(T).name() << std::endl;
std::cout << typeid(param).name() << std::endl;
}
const auto v = createVec();
f(&v[0]);
> clang++ -sd=c++1y t.cpp && ./a.out
PK6Widget // 正しい
PK6Widget // 誤 const Widget *
// 正 const Widget * const &
Boost TypeIndexを使う
22
#include <iostream>
#include <vector>
#include <boost/type_index.hpp>
template <typename T>
void f(const T& param) {
using boost::typeindex::type_id_with_cvr;
std::cout
<< type_id_with_cvr<T>().pretty_name() << std::endl
<< type_id_with_cvr<decltype(param)>().pretty_name()
<< std::endl;
}
struct Widget {};
std::vector<Widget> createVec() { return {{}}; }
int main() {
const auto v = createVec();
f(&v[0]);
}
Boost TypeIndexを使う –cont.
• TypeIndexはBoost 1.56から使える
23
> clang++ -std=c++1y t.cpp && ./a.out
Widget const*
Widget const* const&
Item 4 Things to Remember
• 推論された型はIDEやコンパイラのエラーメッ
セージ、Boost TypeIndexライブラリにより確
認することが出来る
• それらの一部は分かりづらく正確でもないこと
があるため、C++の型推論ルールを知ってお
くことはやはり重要である
24

Contenu connexe

Tendances

Effective Modern C++ Item 9 and 10
Effective Modern C++ Item 9 and 10Effective Modern C++ Item 9 and 10
Effective Modern C++ Item 9 and 10uchan_nos
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexprGenya Murakami
 
Effective Modern C++ 勉強会#7 Item 27
Effective Modern C++ 勉強会#7 Item 27Effective Modern C++ 勉強会#7 Item 27
Effective Modern C++ 勉強会#7 Item 27Mitsuru Kariya
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門Hideyuki Tanaka
 
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)Hiro H.
 
Constexpr 中3女子テクニック
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニックGenya Murakami
 
新しい並列for構文のご提案
新しい並列for構文のご提案新しい並列for構文のご提案
新しい並列for構文のご提案yohhoy
 
今から始める Lens/Prism
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/PrismNaoki Aoyama
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexprGenya Murakami
 
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)Yuki Tamura
 
Effective Modern C++ 勉強会#3 Item 15
Effective Modern C++ 勉強会#3 Item 15Effective Modern C++ 勉強会#3 Item 15
Effective Modern C++ 勉強会#3 Item 15Mitsuru Kariya
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチンyohhoy
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターンMoriharu Ohzu
 
Effective modern c++ 5
Effective modern c++ 5Effective modern c++ 5
Effective modern c++ 5uchan_nos
 
Effective Modern C++ 勉強会 Item26
Effective Modern C++ 勉強会 Item26Effective Modern C++ 勉強会 Item26
Effective Modern C++ 勉強会 Item26Akihiro Nishimura
 
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)Akihiko Matuura
 
Visual C++で使えるC++11
Visual C++で使えるC++11Visual C++で使えるC++11
Visual C++で使えるC++11nekko1119
 
ELFの動的リンク
ELFの動的リンクELFの動的リンク
ELFの動的リンク7shi
 

Tendances (20)

Effective Modern C++ Item 9 and 10
Effective Modern C++ Item 9 and 10Effective Modern C++ Item 9 and 10
Effective Modern C++ Item 9 and 10
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
Effective Modern C++ 勉強会#7 Item 27
Effective Modern C++ 勉強会#7 Item 27Effective Modern C++ 勉強会#7 Item 27
Effective Modern C++ 勉強会#7 Item 27
 
C++ マルチスレッド 入門
C++ マルチスレッド 入門C++ マルチスレッド 入門
C++ マルチスレッド 入門
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
 
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
 
Constexpr 中3女子テクニック
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニック
 
新しい並列for構文のご提案
新しい並列for構文のご提案新しい並列for構文のご提案
新しい並列for構文のご提案
 
今から始める Lens/Prism
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/Prism
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
 
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)
 
Effective Modern C++ 勉強会#3 Item 15
Effective Modern C++ 勉強会#3 Item 15Effective Modern C++ 勉強会#3 Item 15
Effective Modern C++ 勉強会#3 Item 15
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
 
Effective modern c++ 5
Effective modern c++ 5Effective modern c++ 5
Effective modern c++ 5
 
Effective Modern C++ 勉強会 Item26
Effective Modern C++ 勉強会 Item26Effective Modern C++ 勉強会 Item26
Effective Modern C++ 勉強会 Item26
 
C++の黒魔術
C++の黒魔術C++の黒魔術
C++の黒魔術
 
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
 
Visual C++で使えるC++11
Visual C++で使えるC++11Visual C++で使えるC++11
Visual C++で使えるC++11
 
ELFの動的リンク
ELFの動的リンクELFの動的リンク
ELFの動的リンク
 

Similaire à Effective Modern C++ 勉強会#1 Item3,4

C++0x 言語の未来を語る
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語るAkira Takahashi
 
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61TATSUYA HAYAMIZU
 
Effective Modern C++ Item 7&8
Effective Modern C++ Item 7&8Effective Modern C++ Item 7&8
Effective Modern C++ Item 7&8明 高橋
 
C++ tips2 インクリメント編
C++ tips2 インクリメント編C++ tips2 インクリメント編
C++ tips2 インクリメント編道化師 堂華
 
C++ Template Metaprogramming
C++ Template MetaprogrammingC++ Template Metaprogramming
C++ Template MetaprogrammingAkira Takahashi
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門natrium11321
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるHideyuki Tanaka
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由kikairoya
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること信之 岩永
 
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#信之 岩永
 
Replace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JPReplace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JPAkira Takahashi
 
T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門伸男 伊藤
 

Similaire à Effective Modern C++ 勉強会#1 Item3,4 (20)

C++0x 言語の未来を語る
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語る
 
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61
 
Effective Modern C++ Item 7&8
Effective Modern C++ Item 7&8Effective Modern C++ Item 7&8
Effective Modern C++ Item 7&8
 
What is template
What is templateWhat is template
What is template
 
C++ tips2 インクリメント編
C++ tips2 インクリメント編C++ tips2 インクリメント編
C++ tips2 インクリメント編
 
C++0x総復習
C++0x総復習C++0x総復習
C++0x総復習
 
C++ Template Metaprogramming
C++ Template MetaprogrammingC++ Template Metaprogramming
C++ Template Metaprogramming
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
 
More C++11
More C++11More C++11
More C++11
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
 
C++0x concept
C++0x conceptC++0x concept
C++0x concept
 
Objc lambda
Objc lambdaObjc lambda
Objc lambda
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
 
Boost17 cpplinq
Boost17 cpplinqBoost17 cpplinq
Boost17 cpplinq
 
C++ tips4 cv修飾編
C++ tips4 cv修飾編C++ tips4 cv修飾編
C++ tips4 cv修飾編
 
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
 
Replace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JPReplace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JP
 
T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門
 

Plus de Takashi Hoshino

Serializabilityとは何か
Serializabilityとは何かSerializabilityとは何か
Serializabilityとは何かTakashi Hoshino
 
Isolation Level について
Isolation Level についてIsolation Level について
Isolation Level についてTakashi Hoshino
 
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3Takashi Hoshino
 
トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2Takashi Hoshino
 
トランザクションの並行処理制御
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御Takashi Hoshino
 
Effective Modern C++ 勉強会#8 Item38
Effective Modern C++ 勉強会#8 Item38Effective Modern C++ 勉強会#8 Item38
Effective Modern C++ 勉強会#8 Item38Takashi Hoshino
 
Effective Modern C++ 勉強会#6 Item25
Effective Modern C++ 勉強会#6 Item25Effective Modern C++ 勉強会#6 Item25
Effective Modern C++ 勉強会#6 Item25Takashi Hoshino
 
WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法Takashi Hoshino
 
メモリより大きなデータの Sufix Array 構築方法の紹介
メモリより大きなデータの Sufix Array 構築方法の紹介メモリより大きなデータの Sufix Array 構築方法の紹介
メモリより大きなデータの Sufix Array 構築方法の紹介Takashi Hoshino
 
10分で分かるバックアップとレプリケーション
10分で分かるバックアップとレプリケーション10分で分かるバックアップとレプリケーション
10分で分かるバックアップとレプリケーションTakashi Hoshino
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤTakashi Hoshino
 
10分で分かるデータストレージ
10分で分かるデータストレージ10分で分かるデータストレージ
10分で分かるデータストレージTakashi Hoshino
 
Intel TSX 触ってみた 追加実験 (TTAS)
Intel TSX 触ってみた 追加実験 (TTAS)Intel TSX 触ってみた 追加実験 (TTAS)
Intel TSX 触ってみた 追加実験 (TTAS)Takashi Hoshino
 
Intel TSX HLE を触ってみた x86opti
Intel TSX HLE を触ってみた x86optiIntel TSX HLE を触ってみた x86opti
Intel TSX HLE を触ってみた x86optiTakashi Hoshino
 
Suffix Array 構築方法の紹介
Suffix Array 構築方法の紹介Suffix Array 構築方法の紹介
Suffix Array 構築方法の紹介Takashi Hoshino
 
An Efficient Backup and Replication of Storage
An Efficient Backup and Replication of StorageAn Efficient Backup and Replication of Storage
An Efficient Backup and Replication of StorageTakashi Hoshino
 
ログ先行書き込みを用いたストレージ差分取得の一手法
ログ先行書き込みを用いたストレージ差分取得の一手法ログ先行書き込みを用いたストレージ差分取得の一手法
ログ先行書き込みを用いたストレージ差分取得の一手法Takashi Hoshino
 
Intel TSX について x86opti
Intel TSX について x86optiIntel TSX について x86opti
Intel TSX について x86optiTakashi Hoshino
 

Plus de Takashi Hoshino (20)

Serializabilityとは何か
Serializabilityとは何かSerializabilityとは何か
Serializabilityとは何か
 
Isolation Level について
Isolation Level についてIsolation Level について
Isolation Level について
 
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3
 
WalB Driver Internals
WalB Driver InternalsWalB Driver Internals
WalB Driver Internals
 
トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2
 
トランザクションの並行処理制御
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御
 
Effective Modern C++ 勉強会#8 Item38
Effective Modern C++ 勉強会#8 Item38Effective Modern C++ 勉強会#8 Item38
Effective Modern C++ 勉強会#8 Item38
 
Effective Modern C++ 勉強会#6 Item25
Effective Modern C++ 勉強会#6 Item25Effective Modern C++ 勉強会#6 Item25
Effective Modern C++ 勉強会#6 Item25
 
WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法
 
メモリより大きなデータの Sufix Array 構築方法の紹介
メモリより大きなデータの Sufix Array 構築方法の紹介メモリより大きなデータの Sufix Array 構築方法の紹介
メモリより大きなデータの Sufix Array 構築方法の紹介
 
WalBの紹介
WalBの紹介WalBの紹介
WalBの紹介
 
10分で分かるバックアップとレプリケーション
10分で分かるバックアップとレプリケーション10分で分かるバックアップとレプリケーション
10分で分かるバックアップとレプリケーション
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
 
10分で分かるデータストレージ
10分で分かるデータストレージ10分で分かるデータストレージ
10分で分かるデータストレージ
 
Intel TSX 触ってみた 追加実験 (TTAS)
Intel TSX 触ってみた 追加実験 (TTAS)Intel TSX 触ってみた 追加実験 (TTAS)
Intel TSX 触ってみた 追加実験 (TTAS)
 
Intel TSX HLE を触ってみた x86opti
Intel TSX HLE を触ってみた x86optiIntel TSX HLE を触ってみた x86opti
Intel TSX HLE を触ってみた x86opti
 
Suffix Array 構築方法の紹介
Suffix Array 構築方法の紹介Suffix Array 構築方法の紹介
Suffix Array 構築方法の紹介
 
An Efficient Backup and Replication of Storage
An Efficient Backup and Replication of StorageAn Efficient Backup and Replication of Storage
An Efficient Backup and Replication of Storage
 
ログ先行書き込みを用いたストレージ差分取得の一手法
ログ先行書き込みを用いたストレージ差分取得の一手法ログ先行書き込みを用いたストレージ差分取得の一手法
ログ先行書き込みを用いたストレージ差分取得の一手法
 
Intel TSX について x86opti
Intel TSX について x86optiIntel TSX について x86opti
Intel TSX について x86opti
 

Effective Modern C++ 勉強会#1 Item3,4