タグ

c++に関するHoriuchi_Hのブックマーク (89)

  • スクールガールストライカーズの 内製クライアントエンジン

    近年、ハイスペックなスマートフォン、高品質なネットワークが普及し、それによりモバイルゲームの制作手法やそれを取り巻く環境も変化してきました。スクウェア・エニックスでは、そのような環境の変化に対して、日々新たなチャレンジをし続けています。そして、このようなスピード感溢れる業界の流れには、会社の枠を超えた技術情報の共有、交流が欠かせないと感じております。 そこでこの夏、社内のエンジニア・テクニカルディレクターによる最新のモバイル開発の技術情報や社内モバイルエンジン、開発秘話によるセッションをメインに、スクウェア・エニックス モバイル オープンカンファレンスを開催する運びとなりました。また、セッションの後は登壇する弊社スタッフと直接ディスカッションやフリートークができる場を設けております。この機会にスクウェア・エニックスという会社についても、より詳しく知って頂ければ幸いです。 マネージャー・テク

    Horiuchi_H
    Horiuchi_H 2014/07/17
    ymlからコードの自動生成だけ見た時はヤバいものかと思いきや、ガチのゲーム屋さんだった。
  • 株式会社ロングゲート - プログラミングの魔導書 ~Programmers’ Grimoire~ vol.3

    プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.3 “Parallel, Concurrent, and Distributed Programming” 並行世界の魔物に人類はどう立ち向かうのか。 目次(カッコ内に数字のある記事名についてはサンプルをご覧いただけます) 序文 熊崎 宏樹 Lock-free入門 (1 2) 熊崎 宏樹 OpenACC 藤田 典久 ErlangとScalaにおけるアクターモデルの紹介 (1 2) 幾田 雅仁 C#の非同期処理 岩永 信之 Real World STM ~作って学ぶSTM~ 石井 大海 データ並列への招待 (1 2) shelarcy 合成可能なメッセージパッシング ~Concurrent ML の紹介~ 小笠原 啓 コルーチンスタイルプログラミング 高橋 晶 画像検索入門 miyabiarts 購入 PDF

    Horiuchi_H
    Horiuchi_H 2013/12/02
    “プログラミングの魔導書 Vol.3”予約受付開始。早速、予約しておいた。
  • Intel、Android向けC++コンパイラを無償提供

    米Intelは、Androidアプリケーションの開発に特化したC++コンパイラ「Intel C++ Compiler v13.0 for Android OS」の提供を開始した。期間限定で無償提供する。 米Intelは2013年8月27日、Androidアプリケーションの開発に特化したC++コンパイラ「Intel C++ Compiler v13.0 for Android OS」の提供を開始した。同社のWebサイトからダウンロードできる。期間限定ながら、無償で利用可能だ。Android NDKが別途必要である。 Intel C++ Compiler v13.0 for Android OSは、Android NDKに含まれるGNU C++コンパイラとの互換性を備え、GNU C++を念頭に開発されたソースコードの再コンパイルが可能。Android NDKに含まれるデバッガなどのコマンドライ

    Intel、Android向けC++コンパイラを無償提供
    Horiuchi_H
    Horiuchi_H 2013/08/30
    IntelがAndorid向け?と思ったら、案の定ターゲットが x86だけだった。ARM版のbinaryが作れなきゃ、汎用性はないよね。
  • 中3女子でもわかる constexpr

    1. 中3女子でもわかる! constexpr Boost.勉強会 #7 bolero_MURAKAMI 2011/12/3 2. ◆⾃⼰紹介 • 名前 : 村上 原野 (むらかみ げんや) @bolero_MURAKAMI, id:boleros • 棲息地: ⼤都会岡⼭ • 仕事 : 猪⾵来美術館陶芸指導員 ・普段はやきものの修⾏をしたり、 縄⽂⼟器をつくったりしています ・趣味は constexpr です 3. ◆⾃⼰紹介 • 好きな C++11 の機能: constexpr • 嫌いな C++11 のキーワード: constexpr • 次期 C++ で強化されてほしい機能: constexpr • 次期 C++ で消えてほしいキーワード: constexpr

    中3女子でもわかる constexpr
  • C言語は今でも価値のある言語か?

    Couchbaseの作者Damien Katz氏は,C言語はバックエンドプログラミングにおいて現在でも優れた言語である,という意見を持っている。しかし他の開発者は,C言語はあまりにも欠陥が多いとしてC++Javaを支持するもの,あるいはいずれも好まないというものなどさまざまだ。 CouchDB の開発者であるDamien Katz氏は,The Unreasonable Effectiveness of C と題した先日のブログ記事において,C言語がバックエンドのための優れた言語であると断言した。氏はC++Java,さらにはErlangやRubyのようなより現代的な言語よりも,今後もC言語を支持していくつもりだという。ただし単純に,C言語を他のどれよりも優れた言語だと言っている訳ではない。"言語自体のパフォーマンスと信頼性が重視される場面においては,C言語に比類する言語は皆無である",別

    C言語は今でも価値のある言語か?
    Horiuchi_H
    Horiuchi_H 2013/01/29
    どの言語を選択するかは、プラットフォームや環境次第。少なくとも C言語で文字列処理が主なプログラムは書きたくないよね。何事も適材適所。
  • C++11 Idioms - とくにあぶなくないRiSKのブログ

    問題 こんなデータメンバを持つクラスのコンストラクタをどう書くでしょうか? #include<string> #include<vector> #include<cstddef> class Book { std::string title; std::vector<std::string> authors; std::string pub; std::size_t pub_year; }; C++03では? もう誰も使っていない古のC++03では、以下のようなコンストラクタになると思います。T ではなく、T const & でコピーのオーバーヘッドを極力減らします。 class Book { std::string title; std::vector<std::string> authors; std::string pub; std::size_t pub_year; public:

    C++11 Idioms - とくにあぶなくないRiSKのブログ
    Horiuchi_H
    Horiuchi_H 2012/10/11
    C++11からの新しいidiomについて。
  • 参照渡し or 値渡し? - yohhoyの日記

    C++03/11における関数の引数型とコピー/ムーブ処理コストとの関係について。 記事の内容は C++Now 2012 Keynote: "Moving Forward with C++11" スライド資料(Part I, Part II) に基づく。(Part IIのpp.22-57) 型Tに対する変更操作を行う関数において、引数の型をconst参照渡し(const T&)*1または値渡し(T)とするどちらが “良い” デザインかという話。ここでは関数呼び出しから値を返すまでに生じるコピーコンストラクタ/ムーブコンストラクタの呼び出し回数によって評価する。つまり、回数が少ない方が低コスト=良いデザインという観点にたつ。 // const参照渡し; pass-by-const-reference T modify1(const T& x) { T tmp(x); tmp.modify()

    参照渡し or 値渡し? - yohhoyの日記
    Horiuchi_H
    Horiuchi_H 2012/08/17
    C++11での最適な引数設計について。
  • Stories of Your Life and Others » Blog Archive » C++で文字列のsplit

    つい最近、C++の文字列splitが必要な場面がありました。 いい加減C++のsplitを毎回書くのが面倒になってきましたので、忘れないようにメモっておきたいと思います。 C++でsplitを書く方法はいくらでも方法があると思いますが、代表的な実装例をあげてみます。 boostが使える環境であれば一番最初の選択肢としてboostのstring algorithmを利用した方が車輪の再発明をしなくて済むかと思います。 ただ、競技プログラミングなどでは残念ながら利用できません。 find_first_ofを利用する方法 vector<string> split(const string &str, char delim){  vector<string> res;  size_t current = 0, found;  while((found = str.find_first_of

    Horiuchi_H
    Horiuchi_H 2012/08/16
    splitの色々な実装。
  • たのしいHaskellのツールチェインとC++ - 純粋関数空間

    というタイトルで、先日、社内の公開セミナーで話しました。 発表資料はこちら。 Haskellのテストフレームワークとベンチマークフレームワークがよくできているので、 これをC++でも使えるんじゃないかという内容です。 概要 背景として、QuickCheck をもっと多くの人に知って/使って貰いたいというのがあります。 QuickCheckは、普段から使っている人間からすると、よくいろいろなバグを拾ってくれるとても便利なものなのですが、 残念ながら普段開発に利用しているC++には相当のもので完成度の高いものが見当たりません。 だからといって、そこから作るためにC++のテンプレートをいじくりまわすには、私はもう老いてしまいました (与えられた関数にランダムな入力を与えるだけなら簡単なのですが、ジェネレータを自由にいじれる機能がやはり欲しいところで)。 そう思った時に、FFIを使えてQuickC

    Horiuchi_H
    Horiuchi_H 2012/07/22
    QuickCheck、ライブラリの実装時には使えそうだな。
  • DateTimeライブラリを書きました - Faith and Brave - C++で遊ぼう

    Boost.DateTimeが使いにくかったので、日時計算を目的とした簡単なDateTimeライブラリを書きました。 SHAND_DATE_TIME_CUSTOM_NOW_TIMEをdefineすることで、現在日時を返す関数を書き換えることができるようになるので、Testableです。 フォーマット指定は、strftimeを参考に、よく使うものだけを採用しました。 shand/date_time.hpp #ifndef SHAND_DATE_TIME_INCLUDE #define SHAND_DATE_TIME_INCLUDE #include <cstddef> #include <ctime> #include <map> #include <boost/xpressive/xpressive_static.hpp> #include <boost/xpressive/regex_a

    DateTimeライブラリを書きました - Faith and Brave - C++で遊ぼう
  • tutorialog » 動的クラスロードによる簡易プラグインアーキテクチャーについて

    動的クラスロードによる簡易プラグインアーキテクチャーについて January 5, 2007 Posted by butcher in : Uncategorized, C, C++ , trackback 最近のソフトウェアではプラグインアーキテクチャーが広く普及しています。 今回は、プラグインアーキテクチャーをC++によって実現する方法について説明します。 そもそもプラグインアーキテクチャーとは、ApacheやEclipse、Firefox等のように、プラグイン(モジュール)によって機能の拡張を(比較的簡単に)行える仕組みのことを言います。一般的には、体のコードを修正せずに機能の拡張が行えるので、それによりソフトウェアの拡張性が高くすることができます。 ここでは、ApacheのようにDSOを追加することによって機能を拡張する仕組みをC++で作ろうと思います。 実際に作るもの

  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

  • ライブラリをビルドせずにBoost.Threadを使う - Faith and Brave - C++で遊ぼう

    Boost.Systemがソースファイルをインクルードしてたので、参考にして書いてみた。 boost_thread_header_only.hpp #ifndef HEADER_ONLY_BOOST_THREAD_INCLUDE #define HEADER_ONLY_BOOST_THREAD_INCLUDE #ifndef BOOST_ERROR_CODE_HEADER_ONLY #define BOOST_ERROR_CODE_HEADER_ONLY #endif #ifndef BOOST_THREAD_NO_LIB #define BOOST_THREAD_NO_LIB #endif #ifndef BOOST_DATE_TIME_NO_LIB #define BOOST_DATE_TIME_NO_LIB #endif #include <boost/config.hpp> #in

    ライブラリをビルドせずにBoost.Threadを使う - Faith and Brave - C++で遊ぼう
  • gccの名前のデマングル

    GCCのtype_infoのname()は、name manglingされたままの文字列を返す。読みにくいこと極まりない。 しかたがないので、Demanglingしてやることにする。 #include <cxxabi.h> class Demangle { private : char * realname ; public : Demangle( std::type_info const & ti ) { int status = 0 ; realname = abi::__cxa_demangle( ti.name(), 0, 0, &status ) ; } Demangle( Demangle const & ) = delete ; Demangle & operator = ( Demangle const & ) = delete ; ~Demangle() { std::f

  • C/C++ におけるデータ入力の速度 - やた@はてな日記

    100 万行のテキストファイル(test-data)を C/C++ で作成したプログラムで読み込むとき,どのくらいの時間がかかるかを調べた結果です. データ入力がボトルネックになるような状況では,std::fgets(), std::fread(), std::istream::read() を使った方が良さそうです.std::istream については特に極端な差が出ていますので,速度面を重視する場合,便利なインタフェースを封印しないとダメっぽいです.実に惜しい…. 追記(2010-07-28):id:metaboles さんより,std::ios::sync_with_stdio(false) を使えば std::cin.getline() や std::getline() も std::fgets() と同じくらい速くなるというコメントをいただきました(後述). $ wc test-

    C/C++ におけるデータ入力の速度 - やた@はてな日記
    Horiuchi_H
    Horiuchi_H 2010/10/20
    std::getline などは、std::ios_base::sync_with_stdio(false); しておくと早くなる。※Cの関数を使わない前提で
  • MSVCのランタイムとスレッドとリソースリークの関係

    の虫: いまだに変な宗教が流行っているを書いたところ、どうもこのへんの情報は、あまり知られていないようであるので、できるだけ分かりやすく解説することにした。 Cの標準ライブラリは、恐ろしく古いライブラリである。その設計は、マルチプロセッサ(コア)上で動作するマルチスレッドが当然の現代では、あまりよろしくない。 たとえば、strtokという関数がある。この関数は、引数として渡された文字列を、内部のバッファにコピーする。次のstrtokの引数には、NULLを渡すことで、そのコピーされたバッファから、次のトークンの場所へのポインターを返すのである。 void f( char const * ptr ) { char const * p1 = strtok( ptr, " " ) ; char const * p2 = strtok( NULL, " " ) ; } しかしもし、strtokが複

  • C++マニアック,オペレータのオーバーロード,operator overload,演算子のオーバーロード,演算子

    ()、関数呼び出し演算子、関数オブジェクト 演算子の表へ ページの先頭へ () は、関数呼び出しの演算子です。これをクラス定義の中でオーバーロードすると、クラスオブジェクトの後ろに () を付けて、関数呼び出しの形式で呼び出せるようになります。 まず、定義の仕方を見てみましょう。次の例では、整数の引数 iValue を取り、これを 2 倍にして返す演算子 () を定義しています。 class CManiac { public: int operator()(int iValue) { return 2 * iValue; } }; 次に、これを使う側の例を見てみましょう。 int main() { CManiac maniac; // クラスオブジェクト maniac を作成する。 int iValue = maniac(1); // 関数呼び出し演算子 () を maniac に適用する

    Horiuchi_H
    Horiuchi_H 2010/10/14
    オペレーターのオーバーロードの書き方サンプル
  • 新型scope guard - デ-mk6

    以前にも何回か書いているスコープガードネタですが(これ、これ、これ)、http://d.hatena.ne.jp/faith_and_brave/20100921/1285049653 とか http://d.hatena.ne.jp/gintenlabo/20100921/1285084859 から、なんかtwitterで話のネタになってたので、ちゃんとC++0xで使えるカッコイイスコープガード作りましたよ! #include <iostream> #include <functional> #include <utility> #define PP_CAT(a, b) PP_CAT_I(a, b) #define PP_CAT_I(a, b) a ## b template<typename F> struct scope_exit_t { scope_exit_t(F & f) :

    新型scope guard - デ-mk6
  • boost::serializationの使い方

    boost::serializationを使う はじめに コンパイル 簡単な使い方 クラスのバージョン付け 読み込みと書き込みで別の動作を行う 「非侵入型」のシリアル化関数 基底クラスをシリアル化する 配列をシリアライズする constメンバはどうするか ポインタからのシリアライズ:その1 ポインタからのシリアライズ:その2 基底クラスへのポインタから復元する 実装レベル オブジェクトの追跡 抽象クラスでのエラー NVP ロケールの設定 はじめに boost C++ Libraries(以下単にboost)という非常に便利なライブラリがあります。 次期C++標準にこのライブラリのうちのいくつかが採用されるらしいという話もあり、 C++開発者にとっては無視して通れないライブラリです。 そんなboostの中に、serializationというライブラリがあります。 一言で言ってしまえば、「クラ

  • Library for libraries - Cube Lilac

    C++は何を間違えたのか: 人生を書き換える者すらいた。より. 2009/12 のBoost.勉強会で一番記憶に残ってるのが,id:faith_and_brave がプレゼン中に何度か使っていた「Library for libaries」と言う言葉でした.この言葉には,Boost などが提供するライブラリには「“エンドユーザ”(アプリケーションを作成するプログラマ)は,別に知らなくても使えなくても問題のないライブラリが数多く存在する」と言う意味も含まれています. いくつか言語を触りましたが,個人的な主観では今でも C++ が書いていて一番心地良いです.これは,私がライブラリ脳 だからと言う事もあります.C++ は他言語よりも「うまくライブラリを書く」ための機能やライブラリが充実しているように感じます.例えば,他言語だと実行時に型チェックをして型毎に必要な処理を記述するようなものが,テンプレ

    Horiuchi_H
    Horiuchi_H 2010/08/16
    しかし、C++を最初にみると言語仕様の多さに圧倒されて、どこまで覚えればいいのかと途方にくれる気もする。まあ、Effective C++嫁でもいいけどw