SlideShare a Scribd company logo
1 of 36
Download to read offline
闇魔術を触ってみた
KMC ID:dtyazsk
自己紹介
• K都大学に通う理学部生
• 例会講座(FizzBuzz)と春合宿講座(文字列型までがんばる)のせいで
もしかしたらコンパイル時処理狂と思われているかもだが
普段はVC++とDXライブラリでゲーム作ってます(constexprがない)
• 冷やしF#始めました
闇魔術is
• C++のことではない
• C++にはboostってライブラリがある
• そこにめっちゃヤバイライブラリがある
BOOST_PP
• boost¥preprocessor.hppに入ってるマクロ群
• 本講座でやったコンパイル時より前、プリプロセス時にやる闇魔術
• TMPとかではできないとんでもないことができる
• 一昨日唐突に使いたくなった
• C言語でも使えるのかなぁ(誰か試してぽよ)
• C++的コードに組み込んで使用例にしてますが別にC的な使い方も出来ます
例えば
BOOST_PP_ADD
• 足し算してくれる
• 例えばBOOST_PP_ADD(3,5)で8に展開される
BOOST_PP_BOOL
• 渡したものが1から255に展開されるなら1、そうでないなら0
• 例えばBOOST_PP_BOOL(10)で1に展開される
• 闇っぽくないな?
プリプロセッサでは
• 型も値もクソもなく2+5とかいう式も評価されない
• すなわちさっきのマクロではきちんと5とかで渡さないといけない
• 例えばBOOST_PP_BOOLでtrueとか渡しても機能しないので注意
• 数値に展開されるマクロならおk
• ただ大きすぎるとマクロの再帰深度限界に達するらしい…
• どういう実装してるんだ
他にも
BOOST_PP_CAT
• トークン名結合
• BOOST_PP_CAT(text,2)でtext2に展開される
• 何かと便利(index_tupleイディオムのヘルパーで使おうと考えてた)
BOOST_PP_STRINGIZE
• 渡したトークンを文字列化する
• static_assertの第2引数に渡すこともできる
• 他にもなんか使えそう
BOOST_PP_CATを使ってみる
• とりあえずindex_tupleとindex_countが定義されてるとする
• これらについては本講座のスライド参照
#define INDEX_COUNT(from,to)¥
template<class>class BOOST_PP_CAT(index_count_help_, from); ¥
template<int... Nums>¥
class BOOST_PP_CAT(index_count_help_, from)¥
<index_tuple<Nums...>>{¥
public:¥
using type = from <Nums...>; }; ¥
template<size_t N>¥
using to = typename BOOST_PP_CAT(index_count_help_, from)¥
<typename index_count<N>::type>::type;
上から説明します
BOOST_PP_CATを使ってみる
• とりあえずindex_tupleとindex_countが定義されてるとする
• これらについては本講座のスライド参照
#define INDEX_COUNT(from,to)¥
template<class>class BOOST_PP_CAT(index_count_help_, from); ¥
template<int... Nums>¥
class BOOST_PP_CAT(index_count_help_, from)¥
<index_tuple<Nums...>>{¥
public:¥
using type = from <Nums...>; }; ¥
template<size_t N>¥
using to = typename BOOST_PP_CAT(index_count_help_, from)¥
<typename index_count<N>::type>::type;
引数をfromとtoに代入して展開するマクロを定義
BOOST_PP_CATを使ってみる
• とりあえずindex_tupleとindex_countが定義されてるとする
• これらについては本講座のスライド参照
#define INDEX_COUNT(from,to)¥
template<class>class BOOST_PP_CAT(index_count_help_, from); ¥
template<int... Nums>¥
class BOOST_PP_CAT(index_count_help_, from)¥
<index_tuple<Nums...>>{¥
public:¥
using type = from <Nums...>; }; ¥
template<size_t N>¥
using to = typename BOOST_PP_CAT(index_count_help_, from)¥
<typename index_count<N>::type>::type;
トークン名結合してよくわからないクラスができる
BOOST_PP_CATを使ってみる
• とりあえずindex_tupleとindex_countが定義されてるとする
• これらについては本講座のスライド参照
#define INDEX_COUNT(from,to)¥
template<class>class BOOST_PP_CAT(index_count_help_, from); ¥
template<int... Nums>¥
class BOOST_PP_CAT(index_count_help_, from)¥
<index_tuple<Nums...>>{¥
public:¥
using type = from <Nums...>; }; ¥
template<size_t N>¥
using to = typename BOOST_PP_CAT(index_count_help_, from)¥
<typename index_count<N>::type>::type;
index_tupleで特殊化
BOOST_PP_CATを使ってみる
• とりあえずindex_tupleとindex_countが定義されてるとする
• これらについては本講座のスライド参照
#define INDEX_COUNT(from,to)¥
template<class>class BOOST_PP_CAT(index_count_help_, from); ¥
template<int... Nums>¥
class BOOST_PP_CAT(index_count_help_, from)¥
<index_tuple<Nums...>>{¥
public:¥
using type = from <Nums...>; }; ¥
template<size_t N>¥
using to = typename BOOST_PP_CAT(index_count_help_, from)¥
<typename index_count<N>::type>::type;
fromにNums…を渡したやつでtypeにエイリアス
BOOST_PP_CATを使ってみる
• とりあえずindex_tupleとindex_countが定義されてるとする
• これらについては本講座のスライド参照
#define INDEX_COUNT(from,to)¥
template<class>class BOOST_PP_CAT(index_count_help_, from); ¥
template<int... Nums>¥
class BOOST_PP_CAT(index_count_help_, from)¥
<index_tuple<Nums...>>{¥
public:¥
using type = from <Nums...>; }; ¥
template<size_t N>¥
using to = typename BOOST_PP_CAT(index_count_help_, from)¥
<typename index_count<N>::type>::type;
上のクラスにindex_countのtype渡してtoにエイリアス
さっきの例の使い方
template<int… Nums>class sum_type{
static int get(){
int ret();
for(const auto& x : {Nums…} )
ret+=x;
return ret;
}
};
INDEX_COUNT(sum,sum_type)
cout<<sum<10>::get()<<endl;//45が出力される
• つまりsum<10>でsum_type<0,1,2,3,4,5,6,7,8,9>に同じになる
• BOOST_PP_CATめっちゃ便利っぽい?
BOOST_PP_IF
• BOOST_PP_IF(cond, t, f)で定義されてる
• condには0から255に展開されるマクロ、または数値直打ち
• condが0ならtに、そうでないならfに展開される
• あれ、案外普通?
#include<boost¥preprocessor.hpp>
#include<iostream>
int main()
{
std::cout<<BOOST_PP_IF(3,”Hello World!”,42)<<std::endl;
}
ん?
コンパイル時では出来ないことやっとる
• 条件演算子でさっきの芸当は不可能
• 条件演算子では結果の2つの型に互換性が必要
• ってMSVCがエラー吐いた
• プリプロセッサなので機械的に展開された
• すなわちコンパイル時にはすでに”Hello World!!”になってたってこと
• でもまだ闇っぽくない
• 十分ヤバイニオイしてきてる気がしないこともない
BOOST_PP_ENUM
• BOOST_PP_ENUM(count, macro, data)
• countに255以下の数字を入れる
• macroにはマクロを入れる
• macro(z,0,data),macro(z,1,data),…,macro(z,count-1,data)展開される
• zが謎すぎて謎だが見たところ2が渡されてるっぽい?
• 下手に触れないほうがいいっぽいです
例
#define TYPE_DECLARE(z,n,type) class BOOST_PP_CAT(type,n)
template<BOOST_PP_ENUM(16,TYPE_DECLARE,Type)>class test{};
ホラーが起こってる
• テンプレート引数16個とか人間が作るテンプレートクラスじゃねぇ
• 普通に可変長引数テンプレートでいいじゃんってツッコミ待ち
• 凄いヤバイっぽい
• ちなみにBOOST_PP_ENUM_SHIFTEDで1からの展開になります
BOOST_PP_REPEAT
• BOOST_PP_REPEAT(count, macro, data)
• さっきのカンマない版
• スペース1個は開けてくれてる
• やなニオイがプンプン
使い方
#define DECLARE(z,n,type)¥
class BOOST_PP_CAT(type, n){ static const int x = n; };
BOOST_PP_REPEAT(32, DECLARE, test)
これヤバ過ぎるでしょ
• 似たようなクラスを大量定義するのにオススメ
• 他にも大量の足し算するときとか
• やっぱりアホ感拭えない
• BOOST_PP_REPEAT_FROM_TOで第1引数から第2引数-1まで展開
とりあえずFizzBuzzする
• テクニック知ってFizzBuzz試すのは礼儀(ほんまか)
• BOOST_PP_STRINGIZEとstatic_assertでコンパイルエラーメーセージで
出します
まずは倍数チェック
• BOOST_PP_EQUAL(x,y)でxとyが同じなら1、そうでないなら0
• 正確にはxとyが同じものに展開するマクロまたは数値
• それとBOOST_PP_MODとBOOST_PP_IFを使えば
「xがyの倍数ならt、そうでないならfに展開する」マクロを作れる
というわけで
#define MOD_IF(n,m,t,f)¥
BOOST_PP_IF(¥
BOOST_PP_EQUAL(¥
BOOST_PP_MOD(n,m),¥
0),¥
t,¥
f)
• 説明は不要だよね
FizzBuzzのための文字列
• FizzBuzzのルールを思い出す
• まず3の倍数であるかチェック
• 3の倍数なら「5の倍数ならFizzBuzz、そうでないならFizz」
• そうでないなら「5の倍数ならBuzz、そうでないならその数字」
• というわけでさっきのMOD_IF使う
• こんな感じ
#define FizzBuzzLoop(z,n,t)¥
MOD_IF(n,3,MOD_IF(n,5,FizzBuzz,Fizz),MOD_IF(n,5,Buzz,n))
• この引数の取り方はBOOST_PP_REPEAT_FROM_TOのため
出力
BOOST_PP_STRINGIZE(BOOST_PP_REPEAT_FROM_TO(1,16,FizzBuzzLoop,t))
• 「さっきのFizzBuzzLoopを1から15まで展開」したものを文字列化する
• 自明なこと解説しないマンは自明なこと解説しないんじゃ
• インテリセンス便利
• GCCにパス通すの面倒だった(VC++では前から通してた)
まだまだ闇の途中
• boost¥preprocessor.hppではもっとマクロが定義されている
• またコンパイラ定義済みマクロもそれなりにある
• これらを使いこなしてこそ上級闇魔導師になれるはず
• 俺たちの戦いはこれからだ
• こんなことやってる暇あったら実行時C++やってる方がいい
おまけ
• ヒープ食いつぶした
• どのタイミングで
食いつぶしたんだ
• インテリセンス死ぬので
良い子は真似しない
参考資料
• C++でゲームプログラミング http://d.hatena.ne.jp/osyo-manga/
• BOOST_PP http://d.hatena.ne.jp/osyo-manga/20100906/1285986310
• Boost.Preprocessorでプログラミングしましょう
http://www.slideshare.net/digitalghost/boostpp
• Boost.ppのリファレンス
http://www.boost.org/doc/libs/1_44_0/libs/preprocessor/doc/ref.html
終わり
ご清聴ありがとうございました

More Related Content

What's hot

暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由kikairoya
 
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会Akihiko Matuura
 
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐりKazuyuki TAKASE
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22Keisuke Fukuda
 
Constexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzzConstexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzz京大 マイコンクラブ
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するYoshifumi Kawai
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチンyohhoy
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールMITSUNARI Shigeo
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングKohsuke Yuasa
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexprGenya Murakami
 
Constexpr 中3女子テクニック
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニックGenya Murakami
 
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」Ken'ichi Matsui
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説Takateru Yamagishi
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!Genya Murakami
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門Shiqiao Du
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装MITSUNARI Shigeo
 

What's hot (20)

暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
 
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
 
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22
 
Constexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzzConstexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzz
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
Constexpr 中3女子テクニック
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニック
 
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 

Similar to 闇魔術を触ってみた

リテラル文字列型までの道
リテラル文字列型までの道リテラル文字列型までの道
リテラル文字列型までの道Satoshi Sato
 
君はまだ,本当のプリプロセスを知らない
君はまだ,本当のプリプロセスを知らない君はまだ,本当のプリプロセスを知らない
君はまだ,本当のプリプロセスを知らないdigitalghost
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるHideyuki Tanaka
 
C++0x 言語の未来を語る
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語るAkira Takahashi
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexprGenya Murakami
 
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装Shinya Akiba
 
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61TATSUYA HAYAMIZU
 
C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料真一 北原
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性Hibiki Yamashiro
 
DATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialTatsuya Tojima
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Springanyakichi
 
Pythonのデータ型をもっと理解する
Pythonのデータ型をもっと理解するPythonのデータ型をもっと理解する
Pythonのデータ型をもっと理解するmalo 21st
 
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.
 
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜Hiromi Ishii
 
第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016kyoto university
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)Shoji Haraguchi
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門natrium11321
 
C++でぼくが忘れがちなこと
C++でぼくが忘れがちなことC++でぼくが忘れがちなこと
C++でぼくが忘れがちなことToshihiko Ando
 

Similar to 闇魔術を触ってみた (20)

リテラル文字列型までの道
リテラル文字列型までの道リテラル文字列型までの道
リテラル文字列型までの道
 
君はまだ,本当のプリプロセスを知らない
君はまだ,本当のプリプロセスを知らない君はまだ,本当のプリプロセスを知らない
君はまだ,本当のプリプロセスを知らない
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
 
C++0x 言語の未来を語る
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語る
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
 
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
 
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61
 
C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
 
DATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 Turorial
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Spring
 
C++の復習
C++の復習C++の復習
C++の復習
 
Pythonのデータ型をもっと理解する
Pythonのデータ型をもっと理解するPythonのデータ型をもっと理解する
Pythonのデータ型をもっと理解する
 
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)
 
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
 
What is template
What is templateWhat is template
What is template
 
第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
 
C++でぼくが忘れがちなこと
C++でぼくが忘れがちなことC++でぼくが忘れがちなこと
C++でぼくが忘れがちなこと
 

Recently uploaded

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 

Recently uploaded (10)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

闇魔術を触ってみた