SlideShare a Scribd company logo
1 of 6
C++入門                                                                         C++出来るだけではマズイ

                                                                          C++は C にくらべてスゴイ!


                                                           みたいな                                              Build 環境
                                                                                                                               自動化
                型安全 printf                                                   C は忘れろ
              variadic template
                                                                        Java は忘れろ                            バージョン管理                      時間の節約

                                      Java とリンク周りの違い
                                                                                                                  Git は歴史改変
                                                                                中途半端に似ているのが……
                                                                                                                                   クラスより前に STL
 (C)char は忘れろ                     開発環境                                                                                               クラスはそんなに
    string                                                                                         Java っぽい C++

                                                              C++はまず STL
                                                                                                     C っぽい C++                普通の C++とは
                                  IDE いらね?
                             ⇒でもデバッガは
                                                     std 不便                      Boost ダー!             普通の C++
 scanf が安全に
 そう C++ならね
                                                                                                                                        標準 lib を良く知る

                                               初心者は ideome で良くね
    組み込みには                                                                            マルチパラダイムで読めないー
C++より C の方が楽なことも                                                                                                              実装を読むのは難しい
                                             C++11
   リソースが難しい
                                    Constexpr―#define のおきかえ
     C で良くね                                                                                           安全なコードに保つ用
                                                                         RAII
C で自分の足を撃つことが
                                          参照                                                                                      Effective C++/STL
                                       Point イラネ                                                     C++11
                                      後半でちょろっと                 delete ダメ、ゼッ
                                                                                                                        C++03 の限界を超える
                                                                        タイ
             演習問題                                                                         Java
                                      メモリ確保の問題                                                                      auto ベンリー(かゆいところに手が届く)
     Int 型作ってみよー
      ⇒キャスト周りが
                                                                  C++
                                                                                                                     Template は Generic みたいなものから
                                                                                 コンテナとアルゴリズムの分離
                                                                                                                    進化した使い方になったのでその分難しい
                                             Library がやる                            Vector と map で 8 割 OK
Boost と C++11 の機能の差分リスト欲しい!                                                                        C++03



                                                                                                           追加された言語仕様
                                              コンパイルオプション
                                                                                                              auto
                                      コンパイラや環境に依存するものは
                                                                                                              SINAE(今までは一部)コンパイルによる
                                              C++11 には入っていない
      boost::move じゃない                                                                                        ラムダ
                                                                                                              イニシャライザリスト
                                                                                                              move
                                                                                                              u8””
                       Thread                                                                                 for_each
                                                        C++11
                          V2(1.50)V3 も使える                                                                    UDL
                                                                        インタラクションポイントがない
                          V3(1.55)
                                                                                  boost にはある

                                                                                                                                C++1y
                 魔導書 2 を読もう                                                                                                        mpl
                                                                                      標準仕様に追加してしまうと
                                                          std::thread                                                              GC
                                                                                      消せない                                                                入らない
                 サンプルがわかりにくい!!                                                                                                     Concept


                                                                            gcc,clang,VC2012
                                                                                                                                                       TR?
                                                        spirit                                    スマートポインタ

                 ProgressDisplay                                                                  ラムダ

                         さようなら                                                                    Regex
                                                                                                                                                       コルーチン
                                                                                                  type_traits
                                                              リファレンスがわかりにくい
    Oven                                                                                          hash_map<-map
                                                              パーサジェネレータ
                                     Any                                                          ソートされているかどうかで使い分け
                                                              C++の型チェックが効く
                                     Range                                                       Tuple
                                     PP(プリプロセッサ)                                                 ランダム random                                            Chrono
                                                                                                  bind/function


RangeExtention                                  便利なものでも
                                              なかなか追加できない                                                              nullptr
                                                                        Phoenix                                                           03 でも欲しいよね
                                                                        コンパイル時間がブーストする☆                                                   #define nullptr 0
                                                                                                                                          クラス実装が面倒くさい
native C++                         !!!C#!!
                                    C++/CLI
       boost lib
       C++11 lib

                                                                                    C++1y に欲しい Concept

                                              Concept               Concept さんは std::tyre_type か std::false_type を返すメタ関数に

    使いたい、使えというモノ


                                                                                 Concept で overload できれば不要な気が

   ゲームエンジンドキュメント                        コードを読め ks
   Boost.Spirit はクソ                                                              厳格なチェックとルーズナチェック
   Unity もクソ                                                                               両方欲しい
                                          欲しい Concept
                                             必要なもののみを定義
                                             現行使用は Dsstructable がネック
                                             ~しないという定義ができない                                         template の使い所
専門学校・大学のプログラミング教育はクソ



                                                                                           Effective C++はもうオワコン

                                    僕の考えた最狂の妹(姉)(for C++)
    それ bjam で(ry
                                                                                                    Event ライブラリ RX
                                    妹 Concept(人外)
                                    1.   いつもよりそう.must by side
                                    2.   結婚しない
                                    3.   年を取らない
       Non トイレ able 妹
                                    4.   トイレに行かない                                                               C++で書きた
       トイレ able 妹
                                    5.   ベッド、風呂に一緒に入る                                                              い!
               
大規模テス
                                                                                          FRP でゲームエンジン@Haskell
                      ト用
                            新規参入しやすいゲームエンジン
ネットゲームのユーザーっ
                                                             UI セルフホスティング
     ぽい
人工知能・機械学習(bot)                                                                       C++の文脈ではフレームワークの中を見たい


                             C++11 っぽいゲームライブラリ




          ネットワークゲームエンジン                                                                   描画,音楽,(スレッド)

          (スケールさせた環境でテスト済                                                                統合環境(Unity 最強)

                 み)

                                                                   コンパイラが C++03
                                DX ライブラリ残念
                                                                                        上のレイヤーではテクスチ
                                                                                          ャ、エフェクト etc
                                                                                         C++の領域から外れる
                                       ラムダでインターフェースが楽に




                                            ソニーさん C のあたりだけ



                                             boost もゲームで使ったり使わなかったり
                                                                                  Unity 時代でプログラマが働くには
                                                                                    プラグイン書きになる?

                                           SDL→結構グチャグチャ




                                           ゲームエンジンの話
                                                                                        フレームワークを覚えるのも
                                                                                        言語覚えるのもコストは同じ
                                           Unity・Unreal→プログラマにやさしくない
                                          MT フレームワーク→プログラマが C++で頑張る
専門学校
    そもそもちゃんとしたコード書き方を教えない                          古いゲームのコードが VS でいけたよ。
                                                    Java へ移植はやめとけ
                                                    バッシュが Simula ベース

大学・大学院                                              GNU HURD って何ベース?謎
                                                                                                         vector<char>でいいかも
    結果ありきのコードを書くことが多い

                                          一行何文字ぐらい書く?
                                              横長になるよね。                Lambda 式の改行位置悩むよね
                                              思う存分伸ばす                 多相化は諦めた方が……                      ぼくの考えた最強文字列ライブラリ
      ちゃんとした教育……コミュニティに期待?                                             lambda 式の decltype 対応
                                                                       何が問題なのか                    最強とは何ぞや
                                                                                                       後から文字コードを追加できる
                                                                                                       もちろん文字単位で操作できないといけない
    C++/CLI を使ったら C++/CLI の
                                                                                                       高速な編集・サーチ
         範囲が広がった
                                      他のテーブルのネタ                                                        文字コードコンバート
                              設計が悪い
                                             Spirit のドキュメントが非道                                        ソートの基準
                                             コード読んでも理解できない
                                             Concept があれば……それができるならドキュメントできるやろ…
Unity
    ドキュメントがくそ
    Unity じゃないと出来ない
                               組み込み→20 年の秘伝のソース
オープンソース(BSD ライセンス)
                                                   スクリプトエンジン
     マルチプラットフォーム
        ios
                                  UI
        Android
                                  デザイン記述言語
        Metro
        Unity
                                                   ネイティブの API
        Brender




                   ☆スクリプトで動きを記述
Qt                                        UI フレームワーク
                     豊富な UI 部品
                                          J クエリ
                                          Qt

          ソースとデータが
          合致しないといけないので面倒

More Related Content

Viewers also liked

3D CADと3Dプリンタ体験セミナー #1
3D CADと3Dプリンタ体験セミナー #13D CADと3Dプリンタ体験セミナー #1
3D CADと3Dプリンタ体験セミナー #1
Kou Ouchi
 
Boost.勉強会 #15 札幌 LT「8年間の研究生活でC++書いてて大変だったことベスト3」
Boost.勉強会 #15 札幌 LT「8年間の研究生活でC++書いてて大変だったことベスト3」Boost.勉強会 #15 札幌 LT「8年間の研究生活でC++書いてて大変だったことベスト3」
Boost.勉強会 #15 札幌 LT「8年間の研究生活でC++書いてて大変だったことベスト3」
Hiro H.
 
Boost.GraphでJR全線乗り尽くしプランを立てる - プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌 (2014.7.12)
Boost.GraphでJR全線乗り尽くしプランを立てる - プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌 (2014.7.12)Boost.GraphでJR全線乗り尽くしプランを立てる - プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌 (2014.7.12)
Boost.GraphでJR全線乗り尽くしプランを立てる - プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌 (2014.7.12)
Hiro H.
 
Presentation business michelin
Presentation business michelinPresentation business michelin
Presentation business michelin
Ange Baks
 

Viewers also liked (20)

Glfw3,OpenGL,GUI
Glfw3,OpenGL,GUI Glfw3,OpenGL,GUI
Glfw3,OpenGL,GUI
 
boost and c++11
boost and c++11boost and c++11
boost and c++11
 
3DCAD@VDI活用とCADデータ管理のロードマップ
3DCAD@VDI活用とCADデータ管理のロードマップ3DCAD@VDI活用とCADデータ管理のロードマップ
3DCAD@VDI活用とCADデータ管理のロードマップ
 
ゲーム開発経営ゲーム
ゲーム開発経営ゲームゲーム開発経営ゲーム
ゲーム開発経営ゲーム
 
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 mergeBoost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
 
Boost container feature
Boost container featureBoost container feature
Boost container feature
 
Boost tour 1.60.0
Boost tour 1.60.0Boost tour 1.60.0
Boost tour 1.60.0
 
3D CADと3Dプリンタ体験セミナー #1
3D CADと3Dプリンタ体験セミナー #13D CADと3Dプリンタ体験セミナー #1
3D CADと3Dプリンタ体験セミナー #1
 
Unity MeshとColliderについて
Unity MeshとColliderについてUnity MeshとColliderについて
Unity MeshとColliderについて
 
Boost apps ver1.0
Boost apps ver1.0Boost apps ver1.0
Boost apps ver1.0
 
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetupゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetup
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
 
Study3 boost
Study3 boostStudy3 boost
Study3 boost
 
Boost.勉強会 #15 札幌 LT「8年間の研究生活でC++書いてて大変だったことベスト3」
Boost.勉強会 #15 札幌 LT「8年間の研究生活でC++書いてて大変だったことベスト3」Boost.勉強会 #15 札幌 LT「8年間の研究生活でC++書いてて大変だったことベスト3」
Boost.勉強会 #15 札幌 LT「8年間の研究生活でC++書いてて大変だったことベスト3」
 
C++11やemscriptenと付き合って1年間の振り返り
C++11やemscriptenと付き合って1年間の振り返りC++11やemscriptenと付き合って1年間の振り返り
C++11やemscriptenと付き合って1年間の振り返り
 
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミングエクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
 
Comparison of Michelin, Goodyear, Continental, Firestone and Other Top Tire B...
Comparison of Michelin, Goodyear, Continental, Firestone and Other Top Tire B...Comparison of Michelin, Goodyear, Continental, Firestone and Other Top Tire B...
Comparison of Michelin, Goodyear, Continental, Firestone and Other Top Tire B...
 
Boost.GraphでJR全線乗り尽くしプランを立てる - プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌 (2014.7.12)
Boost.GraphでJR全線乗り尽くしプランを立てる - プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌 (2014.7.12)Boost.GraphでJR全線乗り尽くしプランを立てる - プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌 (2014.7.12)
Boost.GraphでJR全線乗り尽くしプランを立てる - プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌 (2014.7.12)
 
Presentation business michelin
Presentation business michelinPresentation business michelin
Presentation business michelin
 
Geometry in Real Life
Geometry in Real LifeGeometry in Real Life
Geometry in Real Life
 

Similar to Boost勉強会 #10 ディスカッションまとめ

組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
 
Define and expansion of cpp macro
Define and expansion of cpp macroDefine and expansion of cpp macro
Define and expansion of cpp macro
digitalghost
 

Similar to Boost勉強会 #10 ディスカッションまとめ (20)

C++ tips4 cv修飾編
C++ tips4 cv修飾編C++ tips4 cv修飾編
C++ tips4 cv修飾編
 
C++の復習
C++の復習C++の復習
C++の復習
 
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
 
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
 
cbt (Cranberries Build Tool)
cbt (Cranberries Build Tool)cbt (Cranberries Build Tool)
cbt (Cranberries Build Tool)
 
第二回東海北陸ロボコン交流会 川上プレゼン
第二回東海北陸ロボコン交流会 川上プレゼン第二回東海北陸ロボコン交流会 川上プレゼン
第二回東海北陸ロボコン交流会 川上プレゼン
 
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
 
C#からSORACOMを管理できるようにした話(SoraCommonNet)
C#からSORACOMを管理できるようにした話(SoraCommonNet)C#からSORACOMを管理できるようにした話(SoraCommonNet)
C#からSORACOMを管理できるようにした話(SoraCommonNet)
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
 
C++ tips2 インクリメント編
C++ tips2 インクリメント編C++ tips2 インクリメント編
C++ tips2 インクリメント編
 
dwangocpp1-lt
dwangocpp1-ltdwangocpp1-lt
dwangocpp1-lt
 
Cプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧めCプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧め
 
app-c.odp
app-c.odpapp-c.odp
app-c.odp
 
Cコンパイラの改造(未)
Cコンパイラの改造(未)Cコンパイラの改造(未)
Cコンパイラの改造(未)
 
Define and expansion of cpp macro
Define and expansion of cpp macroDefine and expansion of cpp macro
Define and expansion of cpp macro
 
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
 
Tensor flow勉強会3
Tensor flow勉強会3Tensor flow勉強会3
Tensor flow勉強会3
 
Unity/CSharp 2
Unity/CSharp 2Unity/CSharp 2
Unity/CSharp 2
 
つぶLT20121215
つぶLT20121215つぶLT20121215
つぶLT20121215
 
[豆ナイト]Java small object programming
[豆ナイト]Java small object programming[豆ナイト]Java small object programming
[豆ナイト]Java small object programming
 

Boost勉強会 #10 ディスカッションまとめ

  • 1. C++入門 C++出来るだけではマズイ C++は C にくらべてスゴイ! みたいな Build 環境 自動化 型安全 printf C は忘れろ variadic template Java は忘れろ バージョン管理 時間の節約 Java とリンク周りの違い Git は歴史改変 中途半端に似ているのが…… クラスより前に STL (C)char は忘れろ 開発環境 クラスはそんなに string Java っぽい C++ C++はまず STL C っぽい C++ 普通の C++とは IDE いらね? ⇒でもデバッガは std 不便 Boost ダー! 普通の C++ scanf が安全に そう C++ならね 標準 lib を良く知る 初心者は ideome で良くね 組み込みには マルチパラダイムで読めないー C++より C の方が楽なことも 実装を読むのは難しい C++11 リソースが難しい Constexpr―#define のおきかえ C で良くね 安全なコードに保つ用 RAII C で自分の足を撃つことが 参照 Effective C++/STL Point イラネ C++11 後半でちょろっと delete ダメ、ゼッ C++03 の限界を超える タイ 演習問題 Java メモリ確保の問題 auto ベンリー(かゆいところに手が届く) Int 型作ってみよー ⇒キャスト周りが C++ Template は Generic みたいなものから コンテナとアルゴリズムの分離 進化した使い方になったのでその分難しい Library がやる Vector と map で 8 割 OK
  • 2. Boost と C++11 の機能の差分リスト欲しい! C++03 追加された言語仕様 コンパイルオプション  auto コンパイラや環境に依存するものは  SINAE(今までは一部)コンパイルによる C++11 には入っていない boost::move じゃない  ラムダ  イニシャライザリスト  move  u8”” Thread  for_each C++11  V2(1.50)V3 も使える  UDL インタラクションポイントがない  V3(1.55) boost にはある C++1y 魔導書 2 を読もう  mpl 標準仕様に追加してしまうと std::thread  GC 消せない 入らない サンプルがわかりにくい!!  Concept gcc,clang,VC2012 TR? spirit  スマートポインタ ProgressDisplay  ラムダ さようなら  Regex コルーチン  type_traits  リファレンスがわかりにくい Oven  hash_map<-map  パーサジェネレータ  Any ソートされているかどうかで使い分け  C++の型チェックが効く  Range  Tuple  PP(プリプロセッサ)  ランダム random Chrono  bind/function RangeExtention 便利なものでも なかなか追加できない nullptr Phoenix 03 でも欲しいよね コンパイル時間がブーストする☆ #define nullptr 0 クラス実装が面倒くさい
  • 3. native C++ !!!C#!! C++/CLI  boost lib  C++11 lib C++1y に欲しい Concept Concept Concept さんは std::tyre_type か std::false_type を返すメタ関数に 使いたい、使えというモノ Concept で overload できれば不要な気が  ゲームエンジンドキュメント コードを読め ks  Boost.Spirit はクソ 厳格なチェックとルーズナチェック  Unity もクソ 両方欲しい 欲しい Concept  必要なもののみを定義  現行使用は Dsstructable がネック  ~しないという定義ができない template の使い所 専門学校・大学のプログラミング教育はクソ Effective C++はもうオワコン 僕の考えた最狂の妹(姉)(for C++) それ bjam で(ry Event ライブラリ RX 妹 Concept(人外) 1. いつもよりそう.must by side 2. 結婚しない 3. 年を取らない  Non トイレ able 妹 4. トイレに行かない C++で書きた  トイレ able 妹 5. ベッド、風呂に一緒に入る い! 
  • 4. 大規模テス FRP でゲームエンジン@Haskell ト用 新規参入しやすいゲームエンジン ネットゲームのユーザーっ UI セルフホスティング ぽい 人工知能・機械学習(bot) C++の文脈ではフレームワークの中を見たい C++11 っぽいゲームライブラリ ネットワークゲームエンジン 描画,音楽,(スレッド) (スケールさせた環境でテスト済 統合環境(Unity 最強) み) コンパイラが C++03 DX ライブラリ残念 上のレイヤーではテクスチ ャ、エフェクト etc C++の領域から外れる ラムダでインターフェースが楽に ソニーさん C のあたりだけ boost もゲームで使ったり使わなかったり Unity 時代でプログラマが働くには プラグイン書きになる? SDL→結構グチャグチャ ゲームエンジンの話 フレームワークを覚えるのも 言語覚えるのもコストは同じ  Unity・Unreal→プログラマにやさしくない  MT フレームワーク→プログラマが C++で頑張る
  • 5. 専門学校  そもそもちゃんとしたコード書き方を教えない  古いゲームのコードが VS でいけたよ。  Java へ移植はやめとけ  バッシュが Simula ベース 大学・大学院  GNU HURD って何ベース?謎 vector<char>でいいかも  結果ありきのコードを書くことが多い 一行何文字ぐらい書く?  横長になるよね。  Lambda 式の改行位置悩むよね  思う存分伸ばす  多相化は諦めた方が…… ぼくの考えた最強文字列ライブラリ ちゃんとした教育……コミュニティに期待?  lambda 式の decltype 対応  何が問題なのか  最強とは何ぞや  後から文字コードを追加できる  もちろん文字単位で操作できないといけない C++/CLI を使ったら C++/CLI の  高速な編集・サーチ 範囲が広がった 他のテーブルのネタ  文字コードコンバート 設計が悪い  Spirit のドキュメントが非道  ソートの基準  コード読んでも理解できない  Concept があれば……それができるならドキュメントできるやろ… Unity  ドキュメントがくそ  Unity じゃないと出来ない 組み込み→20 年の秘伝のソース
  • 6. オープンソース(BSD ライセンス) スクリプトエンジン マルチプラットフォーム  ios UI  Android デザイン記述言語  Metro  Unity ネイティブの API  Brender ☆スクリプトで動きを記述 Qt  UI フレームワーク 豊富な UI 部品  J クエリ  Qt ソースとデータが 合致しないといけないので面倒