Enviar búsqueda
Cargar
第2回 mix c++勉強会@tokyo 資料
•
0 recomendaciones
•
1,229 vistas
真一 北原
Seguir
第2回 mix c++勉強会@tokyo 資料での発表スライドです
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 24
Descargar ahora
Descargar para leer sin conexión
Recomendados
ランダムフォレスト回帰
ランダムフォレスト回帰
隆介 小野
Dart on Raspberry Pi
Dart on Raspberry Pi
Kasai Nobuhiro
Database.persistentの話
Database.persistentの話
真一 北原
能年玲奈ちゃん駆動開発
能年玲奈ちゃん駆動開発
真一 北原
型! 型!
型! 型!
真一 北原
型!
型!
真一 北原
templateを依存型っぽく使ってみる
templateを依存型っぽく使ってみる
真一 北原
すごいMonad入門
すごいMonad入門
真一 北原
Recomendados
ランダムフォレスト回帰
ランダムフォレスト回帰
隆介 小野
Dart on Raspberry Pi
Dart on Raspberry Pi
Kasai Nobuhiro
Database.persistentの話
Database.persistentの話
真一 北原
能年玲奈ちゃん駆動開発
能年玲奈ちゃん駆動開発
真一 北原
型! 型!
型! 型!
真一 北原
型!
型!
真一 北原
templateを依存型っぽく使ってみる
templateを依存型っぽく使ってみる
真一 北原
すごいMonad入門
すごいMonad入門
真一 北原
すごいCoq入門
すごいCoq入門
真一 北原
Lt駆動開発03 コンパイル時fizz buzzやってみた
Lt駆動開発03 コンパイル時fizz buzzやってみた
真一 北原
Lt駆動開発03 サイト運営してみた結果
Lt駆動開発03 サイト運営してみた結果
真一 北原
型安全Printf作ってみた
型安全Printf作ってみた
真一 北原
能年玲奈ちゃんのファンとして本気を出してみた
能年玲奈ちゃんのファンとして本気を出してみた
真一 北原
C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料
真一 北原
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
Más contenido relacionado
Más de 真一 北原
すごいCoq入門
すごいCoq入門
真一 北原
Lt駆動開発03 コンパイル時fizz buzzやってみた
Lt駆動開発03 コンパイル時fizz buzzやってみた
真一 北原
Lt駆動開発03 サイト運営してみた結果
Lt駆動開発03 サイト運営してみた結果
真一 北原
型安全Printf作ってみた
型安全Printf作ってみた
真一 北原
能年玲奈ちゃんのファンとして本気を出してみた
能年玲奈ちゃんのファンとして本気を出してみた
真一 北原
C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料
真一 北原
Más de 真一 北原
(6)
すごいCoq入門
すごいCoq入門
Lt駆動開発03 コンパイル時fizz buzzやってみた
Lt駆動開発03 コンパイル時fizz buzzやってみた
Lt駆動開発03 サイト運営してみた結果
Lt駆動開発03 サイト運営してみた結果
型安全Printf作ってみた
型安全Printf作ってみた
能年玲奈ちゃんのファンとして本気を出してみた
能年玲奈ちゃんのファンとして本気を出してみた
C++勉強会in広島プレゼン資料
C++勉強会in広島プレゼン資料
Último
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
Último
(8)
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
第2回 mix c++勉強会@tokyo 資料
1.
C++でゲームDSL 2014/03/21 第2回 mixC++勉強会@Tokyo @minamiyama1994
2.
全体の概要 ● 自己紹介 ● デモンストレーション ●
ライブラリの外観 ● ライブラリの実装 ● 将来性 ● (時間があれば)オマケ ● 質疑応答
3.
自己紹介 ● 広島に生息する極々平凡な大学生 ● Twitter:@minamiyama1994 ○
女優能年玲奈ちゃんのファンとしてのアカウント @masakazu_nonenなどもあります ● C++好きです、とか言いつつ最近Haskellばかり やっている
4.
● Github:minamiyama1994 ○ FTMP(TMPのためのライブラリ) ○
C++のパーサコンビネータDSL ○ 議論支援系 ○ 小説っぽいの ○ girlfriend_require(彼女募集) ● などを公開しています 自己紹介
5.
初めに ● 今回作成したのは「ノベルゲーム用のC++の DSL」です ● もっと言えば設計も実装もプロトタイプです ●
ご容赦下さいm(_ _)m
6.
デモンストレーション ● こんなコードをコンパイルすると……
7.
デモンストレーション ● こんな感じに
8.
9.
ライブラリの外観 ● namespaceはgpp ● class
gameオブジェクトを生成 ● gameオブジェクトのoperator()に対しコマンドオ ブジェクトを引数に渡すと実行される ● gameオブジェクトをoperator()()で呼び出したら 終了
10.
ライブラリの外観 ● gameオブジェクトのoperator()に対してコマンド を渡した結果のテキスト描画などは次に operator()が呼び出された時に消される ● operator()内ではコマンドによる描画結果など は有効
11.
ライブラリの外観 ● コマンドオブジェクトは ○ text……テキスト ○
image……背景画像 ○ bgm……音声 ○ pause……Enterキー待 ○ clear……テキストクリア ● operator+で結合可能
12.
ライブラリの実装 ● やりたいこと ○ templateを活用して重複の少ない&実行時コストの低い コードに ■
→TMPを活用 ○ 実装の詳細は隠蔽する ■ →pImplを活用
13.
ライブラリの実装 ● 問題発生 ● TMPとpImplを両立させたい ○
templateばかりだとヘッダに全てが公開される ■ →pImplとは相性が悪い ● どうすればいいか ● CRTP
14.
ライブラリの実装 ● コマンドオブジェクトのoperator+などは全コマン ドクラスで共通 ● それぞれのクラスで異なる部分もある ●
普通なら継承などを使うところだけれども、「実 行時コストの低い」という目標に反する ● そこでCRTPを用いて共通部分と異なる部分を まとめる
15.
ライブラリの実装 ● CRTPとは? ○ class
Inheritance : public Base < Inheritance > { } ; ○ 「奇妙に再帰するtemplateパターン」 ○ 基底クラスは継承先のクラスについての詳細を知ること ができる ○ static_castを用いて「安全に」「コンパイル時に」ダウン キャストができる ■ static_cast < Inheritance & > ( * this ) ; // というの が可能
16.
ライブラリの実装 ● CRTPを用いて、共通の処理は基底クラス側 で、派生クラスごとに異なる処理もstatic_castと visitorパターンを用いて処理を行う ● 基底クラス側では実装をpImplなどを用いて隠 蔽できる ●
TMPとpImplを両立させることが出来た!
17.
ライブラリの実装 ● 各種コマンドクラスの実装の詳細はcppファイル に隠蔽できる ● デモンストレーションのようなCUIを例えば wxWidgetsなどを用いてGUIに差し替えることも できる
18.
将来 ● 選択肢を出して、結果により条件分岐を行う機 能の実装 ● 実行中の状態のセーブ/ロード機能の実装 ●
バックエンドをGUIに差し替え ● 等々 ● なお、今回発表に使ったライブラリはGame++と してGithubで公開しています
19.
オマケ ● 当初はデモンストレーションもGUIを目指してい ました ○ →使用環境(MinGW)でwxWidgetsがビルドできず ○
その他のGUIライブラリを試すも時間が無くなり断念 ● というわけで、試した各種GUIライブラリについ て簡単に紹介
20.
オマケ ● wxWidets ○ イベントドリブン ○
使いやすい、慣れてる ○ →最新のMinGWでビルドできず使用を断念
21.
オマケ ● Qt ○ メジャーらしい(この勉強会でも関連のテーマで発表する 人がいますね) ○
ちょっと目的と沿わない感じだったので断念
22.
オマケ ● FLTK ○ 海外ではメジャー? らしい ○
手続き型とイベントドリブンが混在したようなインター フェース ○ 使いやすそう……と思ったけれども結局良くわからず断 念
23.
オマケ ● FOX ○ wxWidgetに似たようなイベントドリブンなインターフェー スのライブラリ ○
これなら行けると思ったけれども、画像の表示がうまく行 かず断念 ■ 目的がノベルゲームなので画像とテキストがオー バーラップするのだけれども、オーバーラップさせる 方法がわからなかった
24.
時間があれば質疑応答に入ります ご清聴 ありがとうございました
Descargar ahora