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

Takashi Hoshino
Takashi HoshinoSoftware Engineer en Cybozu Labs, Inc
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
1 de 24

Recomendados

Effective Modern C++ Item 9 and 10 por
Effective Modern C++ Item 9 and 10Effective Modern C++ Item 9 and 10
Effective Modern C++ Item 9 and 10uchan_nos
2.4K vistas20 diapositivas
Effective Modern C++ 勉強会#3 Item 15 por
Effective Modern C++ 勉強会#3 Item 15Effective Modern C++ 勉強会#3 Item 15
Effective Modern C++ 勉強会#3 Item 15Mitsuru Kariya
1.3K vistas59 diapositivas
templateとautoの型推論 por
templateとautoの型推論templateとautoの型推論
templateとautoの型推論MITSUNARI Shigeo
15.2K vistas22 diapositivas
Effective Modern C++ 勉強会#3 Item16 por
Effective Modern C++ 勉強会#3 Item16Effective Modern C++ 勉強会#3 Item16
Effective Modern C++ 勉強会#3 Item16Mitsuru Kariya
1.1K vistas61 diapositivas
Emcjp item21 por
Emcjp item21Emcjp item21
Emcjp item21MITSUNARI Shigeo
2.3K vistas12 diapositivas
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」 por
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Hiro H.
8.9K vistas71 diapositivas

Más contenido relacionado

La actualidad más candente

組み込みでこそC++を使う10の理由 por
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由kikairoya
27K vistas32 diapositivas
Everyday Life with clojure.spec por
Everyday Life with clojure.specEveryday Life with clojure.spec
Everyday Life with clojure.specKent Ohashi
3.3K vistas47 diapositivas
ゲーム開発者のための C++11/C++14 por
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14Ryo Suzuki
103.6K vistas157 diapositivas
llvm入門 por
llvm入門llvm入門
llvm入門MITSUNARI Shigeo
16.6K vistas19 diapositivas
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18) por
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)Hiro H.
3.4K vistas37 diapositivas
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ por
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami
52.4K vistas106 diapositivas

La actualidad más candente(20)

組み込みでこそC++を使う10の理由 por kikairoya
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya27K vistas
Everyday Life with clojure.spec por Kent Ohashi
Everyday Life with clojure.specEveryday Life with clojure.spec
Everyday Life with clojure.spec
Kent Ohashi3.3K vistas
ゲーム開発者のための C++11/C++14 por Ryo Suzuki
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki103.6K vistas
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18) por Hiro H.
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)
Hiro H.3.4K vistas
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ por Genya Murakami
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
Genya Murakami52.4K vistas
C++ 11 Features por Jan Rüegg
C++ 11 FeaturesC++ 11 Features
C++ 11 Features
Jan Rüegg2.6K vistas
Effective Modern C++ 勉強会 Item 22 por Keisuke Fukuda
Effective Modern C++ 勉強会 Item 22Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22
Keisuke Fukuda2.8K vistas
C++ Template Meta Programming の紹介@社内勉強会 por Akihiko Matuura
C++ Template Meta Programming の紹介@社内勉強会C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
Akihiko Matuura9.4K vistas
規格書で読むC++11のスレッド por Kohsuke Yuasa
規格書で読むC++11のスレッド規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
Kohsuke Yuasa17.6K vistas
Visual C++で使えるC++11 por nekko1119
Visual C++で使えるC++11Visual C++で使えるC++11
Visual C++で使えるC++11
nekko111936.8K vistas
C++ マルチスレッドプログラミング por Kohsuke Yuasa
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
Kohsuke Yuasa107.7K vistas
C++ ポインタ ブートキャンプ por Kohsuke Yuasa
C++ ポインタ ブートキャンプC++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
Kohsuke Yuasa11K vistas
プログラムの処方箋~健康なコードと病んだコード por Shigenori Sagawa
プログラムの処方箋~健康なコードと病んだコードプログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
Shigenori Sagawa8.9K vistas
中3女子でもわかる constexpr por Genya Murakami
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
Genya Murakami49K vistas
オブジェクト指向の設計と実装の学び方のコツ por 増田 亨
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨95.1K vistas
Constexpr 中3女子テクニック por Genya Murakami
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニック
Genya Murakami33K vistas

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

C++0x 言語の未来を語る por
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語るAkira Takahashi
1.7K vistas40 diapositivas
わんくま同盟大阪勉強会#61 por
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61TATSUYA HAYAMIZU
957 vistas66 diapositivas
Effective Modern C++ Item 7&8 por
Effective Modern C++ Item 7&8Effective Modern C++ Item 7&8
Effective Modern C++ Item 7&8明 高橋
965 vistas24 diapositivas
What is template por
What is templateWhat is template
What is templateAkira Takahashi
2.9K vistas32 diapositivas
C++ tips2 インクリメント編 por
C++ tips2 インクリメント編C++ tips2 インクリメント編
C++ tips2 インクリメント編道化師 堂華
3.3K vistas16 diapositivas
C++0x総復習 por
C++0x総復習C++0x総復習
C++0x総復習道化師 堂華
4.9K vistas170 diapositivas

Similar a Effective Modern C++ 勉強会#1 Item3,4(20)

C++0x 言語の未来を語る por Akira Takahashi
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語る
Akira Takahashi1.7K vistas
わんくま同盟大阪勉強会#61 por TATSUYA HAYAMIZU
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61
TATSUYA HAYAMIZU957 vistas
Effective Modern C++ Item 7&8 por 明 高橋
Effective Modern C++ Item 7&8Effective Modern C++ Item 7&8
Effective Modern C++ Item 7&8
明 高橋965 vistas
C++ tips2 インクリメント編 por 道化師 堂華
C++ tips2 インクリメント編C++ tips2 インクリメント編
C++ tips2 インクリメント編
道化師 堂華3.3K vistas
C++ Template Metaprogramming por Akira Takahashi
C++ Template MetaprogrammingC++ Template Metaprogramming
C++ Template Metaprogramming
Akira Takahashi5.1K vistas
競技プログラミングのためのC++入門 por natrium11321
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321 32.9K vistas
C++コミュニティーの中心でC++をDISる por Hideyuki Tanaka
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
Hideyuki Tanaka12.4K vistas
C#や.NET Frameworkがやっていること por 信之 岩永
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
信之 岩永60K vistas
.NET Core 2.x 時代の C# por 信之 岩永
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
信之 岩永6.2K vistas
Replace Output Iterator and Extend Range JP por Akira Takahashi
Replace Output Iterator and Extend Range JPReplace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JP
Akira Takahashi1.6K vistas
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30) por Hiro H.
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
Hiro H.4K vistas

Más de Takashi Hoshino

Serializabilityとは何か por
Serializabilityとは何かSerializabilityとは何か
Serializabilityとは何かTakashi Hoshino
67 vistas17 diapositivas
Isolation Level について por
Isolation Level についてIsolation Level について
Isolation Level についてTakashi Hoshino
637 vistas20 diapositivas
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3 por
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3Takashi Hoshino
1.4K vistas24 diapositivas
WalB Driver Internals por
WalB Driver InternalsWalB Driver Internals
WalB Driver InternalsTakashi Hoshino
1.4K vistas7 diapositivas
トランザクションの並行実行制御 rev.2 por
トランザクションの並行実行制御 rev.2トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2Takashi Hoshino
6.3K vistas50 diapositivas
トランザクションの並行処理制御 por
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御Takashi Hoshino
6.1K vistas34 diapositivas

Más de Takashi Hoshino(20)

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

Último

The Things Stack説明資料 by The Things Industries por
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things IndustriesCRI Japan, Inc.
76 vistas29 diapositivas
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 por
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
89 vistas26 diapositivas
SNMPセキュリティ超入門 por
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門mkoda
453 vistas15 diapositivas
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 por
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PC Cluster Consortium
45 vistas12 diapositivas
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 por
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PC Cluster Consortium
23 vistas36 diapositivas
光コラボは契約してはいけない por
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
25 vistas17 diapositivas

Último(12)

The Things Stack説明資料 by The Things Industries por CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.76 vistas
SNMPセキュリティ超入門 por mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda453 vistas
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 por PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 por PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
光コラボは契約してはいけない por Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga25 vistas
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) por NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... por NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
Windows 11 information that can be used at the development site por Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka90 vistas
SSH応用編_20231129.pdf por icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4380 vistas

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