SlideShare a Scribd company logo
templateとautoの型推論
2015/1/28 EMC1
光成滋生(@herumi)
このテキストでの記法
T : templateの型
ParamType : Tを含む複雑な型
ParamType = T, const T&, T*, ...
templateの型推論は3パターン
ParamTypeがポインタ型かuniversalでない参照型
universalな参照型
詳細はItem 24で(右辺値参照:以降univ参照と表記)
その他
Item 1 : templateの型推論
// 宣言
template<class T> void f(ParamType param);
// 呼び出し
f(expr);
2/22
exprが参照型なら参照部分を取り除く
ParamTypeにしたがってTを決める
ParamType = T&のときの例
constオブジェクトを関数に渡しても値は変わらないべき
ParamTypeがポインタかunivでない参照
template<class T> void f(T& param);
int x = 27;
const int cx = x;
const int& rx = x;
f(x); // T = int, param = int&
f(cx); // T = const int, param = const int&
f(rx); // T = const int, param = const int&
3/22
ParamType = const T&のときの例
rxの参照は無視されるのでx, cxと同じ
ParamTypeがポインタかunivでない参照
template<class T> void f(const T& param);
int x = 27;
const int cx = x;
const int& rx = x;
f(x); // T = int, param = const int&
f(cx); // T = int, param = const int&
f(rx); // T = int, param = const int&
4/22
ParamType = T*のときの例
参照とポインタは本質的に同じ
ParamTypeがポインタかunivでない参照
template<class T> void f(T* param);
int x = 27;
const int* px = &x;
f(&x); // T = int, param = int*
f(px); // T = const int, param = const int*
5/22
exprがrvalueなら一つ目と同じ規則
exprがlvalueならTとParamTypeはlvalue参照で
あるかのように推論される
Tが参照型になるのはこのときだけ
ParamTypeはrvalue参照であるかのように定義される
が型はlvalue参照になる
exprがlvalueかrvalueかによって違うのが重要
ParamTypeがuniversal参照
6/22
ParamType = T&&のときの例
参照とポインタは本質的に同じ
ParamTypeがuniversal参照
template<class T> void f(T&& param);
int x = 27;
const int cx = x;
const int& rx = x;
f(27); // rvalue : T = int, param = int&&
f(x); // lvalue : T = int&, param = int&
f(cx); // lvalue : T = const int&, param = const int&
f(rx); // lvalue : T = const int&, param = const int&
7/22
値渡しになる
paramはコピーされる
参照, const, volatileは無視される
ParamTypeがポインタでも参照でもない
template<class T> void f(T param);
int x = 27;
const int cx = x;
const int& rx = x;
f(x); // T = param = int
f(cx); // T = param = int
f(rx); // T = param = int
8/22
exprが差す先のconst性は無視されない
ParamTypeがポインタでも参照でもない
template<class T> void f(T param);
const char *const p = "abc";
f(p); // T = param = const char *
9/22
ポインタと配列は異なる型
大抵は配列は先頭要素へのポインタに変換される
関数パラメータには配列型がない
templateも同様
配列
const char name[] = "abc"; // const char[4]
const char *p = name; // const char*
void f(int *param);
void f(int param[]); // int *paramと同じ
template<class T> void f(T param);
f(name); // T = const char *
10/22
配列への参照は変換されない
配列のサイズを取得するテクニック
C++11ならarray<T, N>がある
注意:array<T,3>::iteratorとarray<T,5>::iteratorは同じ型かも
配列への参照
const char name[] = "abc"; // const char[4]
template<class T> void f(T& param);
f(name); // T = const char (&)[4]
template<class T, size_t N>
constexpr size_t arraySize(const T (&)[N]) noexcept {
return N;
}
11/22
関数型も関数ポインタに変換される
関数型への参照は変換されない
関数
void g(int);
template<class T>void f1(T param);
template<class T>void f2(T& param);
f1(g); // T = void (*)(int);
f2(g); // T = void (&)(int);
12/22
 template<class T> void f(Para para)の分類
 関数f(Para)にXを渡したときのTの型
\ 関数
\
渡す型X
f(T) f(T&) f(const T&) f(T&& para)
T=
para
T&
=para
const T&
=para
T para
int int int int int& int&
int& int int int int& int&
const int int const int int const
int&
const
int&
const
int&
int const int int const
int&
const
int&
1 int error int int int&&
一覧表
13/22
参照型の参照は無視される
universal参照はlvalueとrvalueでルールが異なる
値渡しではconst, volatileは無視される
arrayや関数は参照でないならポインタになる
Item 1のまとめ
14/22
autoの型推論は殆どtemplateの型推論と同じ
autoはParamTypeとして振る舞う
参照をつけないと値はコピーされる
Item 2 : autoの型推論
auto x = 27;
は
template<class T>
void f_for_x(T param);
f_for_x(27);
の挙動と等しい。
const auto& rx = x;
は
template<class T>
void f_for_rx(const T& param);
f_for_rx(x);
の挙動と等しい。
15/22
Item 1の分類に応じる
autoの推論例
auto x = 27; // int
const auto cx = x; // const int
const auto& rx = x; // const int&
auto&& ur1 = x; // xはintでlvalueなのでint&
auto&& ur2 = cx; // cxはconst intでlvalueなのでconst int&
auto&& ur3 = 27; // 27はintでrvalueなのでint&&
const char name[] = "abc";
auto a1 = name; // const char *
auto& a2 = name; // const char (&)[4];
void func(int, double);
auto f1 = func; // void (*)(int, double);
auto& f2 = func; // void (&)(int, double);
16/22
autoは一つの要素でも初期化リストになる
template関数に直接渡せない
初期化リストの注意点(1/2)
int x1(3); // x1 = 3
int x2{5}; // x2 = 5
auto a1(3); // int a1 = 3;
auto a2{5}; // std::initializer_list<int> a2 = {5};
template<class T> void f(T param);
auto a{1, 2, 3};
f(a); // ok
f({1, 2, 3}); // なぜかerror
template<class T> void f(std::initializer_list<T> param);
f({1, 2, 3}); // これはok
17/22
C++17から変わる(N3922)
auto x = {1}; // 初期化リスト
auto x = {2, 3, 4}; // 初期化リスト
auto x{1}; // int
auto x{2, 3, 4}; // エラー
autoがtemplate型の推論型になるところ
ラムダ関数のauto引数
C++14のreturnのauto
クイズ これは?
初期化リストの注意点(2/2)
auto f() {
return {1, 2}; // error
}
const auto x{2, 3, 4};
auto f = [&](auto x) { return x.size(); }
f(x); // ok
f({1, 2}); // error
18/22
auto x{0xf, 0xffffffff};
auto y{4294967295, 0xffffffff};
C++17から変わる(N3922)
const auto x = {1}; // 初期化リスト
const auto x = {2, 3, 4}; // 初期化リスト
const auto x{1}; // int
const auto x{2, 3, 4}; // エラー
autoを使うと無駄なコピーが発生するかも
std::vector<int> v = vs[i]; とコピー
forとautoの組み合わせの注意点(1/4)
std::vector<std::vector<int>> vs;
for (auto v : vs) { ... }
std::vector<std::vector<int>> vs;
for (auto& v : vs) { ... } // 値を変更するとき
for (const auto& v : vs { ... } // 値をいじらないとき
19/22
std::vector<bool>に対してauto&はエラー
vector<bool>は一時オブジェクトを生成するため
auto&&を使う
auto&&は先程の例でもうまくいく
いつでもauto&&でええんじゃないか
auto&&を省略してしまってもいいんじゃないか
規格に提案されclang/VCで実装されたが却下される
forとautoの組み合わせの注意点(2/4)
std::vector<bool> v;
for (auto& e : v) // エラー
for (auto&& e : v) // うまくいく
20/22
const auto&よりautoがよいレアケース
forとautoの組み合わせの注意点(3/4)
void fff(int *y, std::array<int, 2>& v) {
for (const auto& x : v) {
*y += x;
*y += x;
}
}
movl (%rdi), %eax ; eax ← y
addl (%rsi), %eax ; eax ← v[0]
movl %eax, (%rdi) ; yを更新
addl (%rsi), %eax ; eax ← v[0] もう一度値を読む
movl %eax, (%rdi)
addl 4(%rsi), %eax ; eax ← v[1]
movl %eax, (%rdi)
addl 4(%rsi), %eax ; eax ← v[1] もう一度読む
movl %eax, (%rdi)
retq
21/22
yの更新でxが変わる可能性を考慮するため
autoにして値は変わらないとコンパイラに教える
注意 : この場合はyの一時変数を導入するのが一番よい
forとautoの組み合わせの注意点(4/4)
void fff(int *y, std::array<int, 2>& v) {
for (auto x : v) {
*y += x;
*y += x;
} }
movl (%rsi), %eax ; eax ← v[0]
addl %eax, %eax ; eaxを2倍して
addl (%rdi), %eax ; yを足す
movl %eax, (%rdi) ; yに書き戻す
movl 4(%rsi), %ecx ; ecx ← v[1]
leal (%rax,%rcx,2), %eax ; ecxの2倍を足す
movl %eax, (%rdi)
retq
22/22

More Related Content

What's hot

組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
Genya Murakami
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
 
Constexpr 中3女子テクニック
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニック
Genya Murakami
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
 

What's hot (20)

Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
 
Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
Constexpr 中3女子テクニック
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニック
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
新しい並列for構文のご提案
新しい並列for構文のご提案新しい並列for構文のご提案
新しい並列for構文のご提案
 
Emcpp0506
Emcpp0506Emcpp0506
Emcpp0506
 
TVM の紹介
TVM の紹介TVM の紹介
TVM の紹介
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
 
LR parsing
LR parsingLR parsing
LR parsing
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
 
Effective Modern C++ 勉強会#3 Item 15
Effective Modern C++ 勉強会#3 Item 15Effective Modern C++ 勉強会#3 Item 15
Effective Modern C++ 勉強会#3 Item 15
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
 
Go入門
Go入門Go入門
Go入門
 

Similar to templateとautoの型推論

C++ Template Metaprogramming
C++ Template MetaprogrammingC++ Template Metaprogramming
C++ Template Metaprogramming
Akira Takahashi
 
Lambda in template_final
Lambda in template_finalLambda in template_final
Lambda in template_final
Cryolite
 
Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34
Appresso Engineering Team
 
C++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みくださいC++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みください
digitalghost
 
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
Fumiya Nozaki
 

Similar to templateとautoの型推論 (20)

C++ Template Metaprogramming
C++ Template MetaprogrammingC++ Template Metaprogramming
C++ Template Metaprogramming
 
Sml#探検隊
Sml#探検隊Sml#探検隊
Sml#探検隊
 
Episteme variadic template
Episteme variadic templateEpisteme variadic template
Episteme variadic template
 
Emcjp item21
Emcjp item21Emcjp item21
Emcjp item21
 
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
 
ナウなヤングにバカうけのイカしたタグ付き共用体
ナウなヤングにバカうけのイカしたタグ付き共用体ナウなヤングにバカうけのイカしたタグ付き共用体
ナウなヤングにバカうけのイカしたタグ付き共用体
 
Model seminar shibata_100710
Model seminar shibata_100710Model seminar shibata_100710
Model seminar shibata_100710
 
More C++11
More C++11More C++11
More C++11
 
C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料
 
Lambda in template_final
Lambda in template_finalLambda in template_final
Lambda in template_final
 
Protocol-Oriented Integers に想うジェネリックプログラミングの未来
Protocol-Oriented Integers に想うジェネリックプログラミングの未来Protocol-Oriented Integers に想うジェネリックプログラミングの未来
Protocol-Oriented Integers に想うジェネリックプログラミングの未来
 
What is template
What is templateWhat is template
What is template
 
constexpr idioms
constexpr idiomsconstexpr idioms
constexpr idioms
 
Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34
 
C++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みくださいC++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みください
 
言語処理系入門€7
言語処理系入門€7言語処理系入門€7
言語処理系入門€7
 
C++0x総復習
C++0x総復習C++0x総復習
C++0x総復習
 
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
 
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
 
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
 

More from MITSUNARI Shigeo

Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
MITSUNARI Shigeo
 

More from MITSUNARI Shigeo (20)

暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル
 
暗認本読書会13 advanced
暗認本読書会13 advanced暗認本読書会13 advanced
暗認本読書会13 advanced
 
暗認本読書会12
暗認本読書会12暗認本読書会12
暗認本読書会12
 
暗認本読書会11
暗認本読書会11暗認本読書会11
暗認本読書会11
 
暗認本読書会10
暗認本読書会10暗認本読書会10
暗認本読書会10
 
暗認本読書会9
暗認本読書会9暗認本読書会9
暗認本読書会9
 
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
 
暗認本読書会8
暗認本読書会8暗認本読書会8
暗認本読書会8
 
暗認本読書会7
暗認本読書会7暗認本読書会7
暗認本読書会7
 
暗認本読書会6
暗認本読書会6暗認本読書会6
暗認本読書会6
 
暗認本読書会5
暗認本読書会5暗認本読書会5
暗認本読書会5
 
暗認本読書会4
暗認本読書会4暗認本読書会4
暗認本読書会4
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
 
楕円曲線と暗号
楕円曲線と暗号楕円曲線と暗号
楕円曲線と暗号
 
HPC Phys-20201203
HPC Phys-20201203HPC Phys-20201203
HPC Phys-20201203
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (12)

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 

templateとautoの型推論