タグ

c++に関するkyabのブックマーク (44)

  • Go for C++ developers

    Go for C++ developers Francesc Campoy Developer, Advocate, and Gopher at Google Go for C++ developers Agenda: let's talk about Go how do I do X in Go? concurrency, because it's awesome Q & A: but feel free to interrupt anytime We might not go through all the slides 2 About me 2011 Joined Google as a Software Engineer writing mostly in C++ and Python used to think smart code was better than boring

  • Extension methods in C++

    A few days ago Bjarne Stroustrup has published a proposal paper (N4174) to the C++ standard committee called Call syntax: x.f(y) vs. f(x,y). The following excerpt from the paper summarizes the proposal: The basic suggestion is to define x.f(y) and f(x,y) to be equivalent. In addition, to increase compatibility and modularity, I suggest we explore the possibility of ignoring uncallable and inaccess

    Extension methods in C++
    kyab
    kyab 2014/10/20
    ビョーネスポポビッチさんの提案=C++流のExtension methodsだと。
  • 並列処理のためのC++ライブラリ拡張 ~C++17: 並列STLの概要

    C++11の標準ライブラリ<thread>を使った並列化 大量のデータを分割し、複数のスレッドに分担させて処理時間を稼ぐことを考えます。スレッドに関わるAPIは、WindowsならCreateThreadやWaitForNltipleObjectなど、Linuxならpthread_xxxxと、OSによって異なるのですが、C++11では標準ライブラリ<thread>がOSごとの差異を吸収してくれているのが嬉しいところ。大量のデータを詰め込んだvectorを2つのスレッドでソートしてみます。 #include <iostream> // cout, endl #include <thread> // thread #include <algorithm> // inplace_merge, etc. #include <chrono> // clock, time_point, duratio

    並列処理のためのC++ライブラリ拡張 ~C++17: 並列STLの概要
    kyab
    kyab 2014/10/05
    純粋な計算の方の並列化
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

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

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

  • C++ Testing Framework Catchの紹介 - C++と色々

    CatchとはC++のテスティングレームワークの1つです。ヘッダオンリーで使うことが出来ます!簡単! https://github.com/philsquared/Catch 私はこちらのブログを拝見して知りました。 ブログズミ: C++ Testing Framework の Catch を使ってみた Google Testなどと同じようにJUnit形式のxmlを出力することができるのでJenkinsでCIすることも可能です。 触ってみて私が感じたCatchの良い所は、 構造化テストがとても書きやすい JUnit4ライクなassertThatと(カスタム)Matcherがある テストケース名が文字列なので日語名が付けられる タグを付けるのが簡単で、タグを限定したテストの実行が容易 まだよく分かっていないところと気になるところ パラメータ化、型パラメータ化テストは書けるのか、書けるのなら

    C++ Testing Framework Catchの紹介 - C++と色々
    kyab
    kyab 2014/06/28
    ヘッダオンリー系
  • C++ Testing Framework の Catch を使ってみた

    C++のユニットテストには Google Test を使ったことがあるが、今は Catch というのが評判いいらしい。 https://t.co/B5eCeGq27Z — MIURA Masahiro (@Dubhead) 2014, 3月 4 というわけで、試した。 チュートリアルまずは、簡単なサンプルを書きました。 Catch は github から clone してきたのを使用しました。Catch はヘッダーのみで使えるので、ライブラリのビルドは不要。パスを通して include するだけで OK です。 #define CATCH_CONFIG_MAIN // main の定義を catch に任せる #include <catch.hpp> int f() { return 1; } TEST_CASE("Test", "[sample]") { CHECK( f() == 2

    kyab
    kyab 2014/06/02
    Catchとかいうやつ。f()の結果が出力されるのが謎すぎる。
  • C/C++のユニットテストフレームワーク CppUTest が便利 – Rest Term

    ## ソースコードの取得 $ git clone git://github.com/cpputest/cpputest.git $ cd cpputest $ mkdir workspace && cd workspace ## cmakeを実行 ## お試しなのでユーザーディレクトリ以下にインストール、カバレッジ(gcov)をサポート $ cmake28 -DCMAKE_INSTALL_PREFIX=./install -DCOVERAGE=ON .. ------------------------------------------------------- CppUTest Version 3.4 Current compiler options: CC: /usr/bin/cc CXX: /usr/bin/c++ ... 省略 Features configure in CppU

  • IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:バッファオーバーフロー: #4 あふれを検出するデバッグ

    第10章 著名な脆弱性対策 バッファオーバーフロー: #4 あふれを検出するデバッグ 領域あふれの問題の検出については、ロジックが複雑に入り組んでいる場合、ソースコードから見いだすのは容易でない。そのような場合、デバッガ等のツールの下で対象のプログラムを動かして、問題を見つけ出すことになる。 スタックおよびヒープにおけるあふれを検出するためのコンパイラのオプションやデバッグ・ツールがいくつか存在する。 次にその主なものを紹介する。 あふれの検出等に使うことのできるデバッグ・ツール ヒープにおける領域あふれやダブルフリー等の問題を検出できるツールをふたつ紹介する。ひとつは独立したツール、もうひとつは統合開発環境の中の機能である。 (1) Valgrind [GNU/Linux] ヒープデバッガを中心とした GNU/Linux 専用のツールスイートである。割当領域外への書き込みや、メモリリーク

    kyab
    kyab 2014/05/31
    にかぎらず色々なオプション
  • TDDと相性の良いC、C++のユニットテスティングフレームワークとは - 千里霧中

    これまでTDDで使えるC、C++向けのユニットテスティングフレームワークをいくつか紹介してきました。その一連の紹介の総括として、今回は、C、C++でのTDDを対象とした場合、どのようなテスティングフレームワークが望ましいのかについてまとめたいと思います。 TDD向けのテスティングフレームワークに求められる条件 TDD向けのテスティングフレームワークに求められる条件については、以前Advent Calender向けの「TDDのはじめかた #TddAdventJp - 千里霧中」の冒頭で触れさせて頂いています。少し加筆して下記に転載します。 軽快にテストを実行できる。TDDにとって、実行に1秒以上かかるテストはもう遅すぎます。そのような実害ある遅さの直接的原因になるフレームワークは避けた方が無難です。 簡潔なテストコードでテストを実装・実行できる。Assertion MethodやTest M

    TDDと相性の良いC、C++のユニットテスティングフレームワークとは - 千里霧中
    kyab
    kyab 2014/05/24
    要件がわかりやすくまとめられてる。あとは特定の条件にマッチするテストだけ実行とかかな。
  • スタックからのメモリ確保の標準化

    江添亮 仕事: C++エヴァンジェリスト(ドワンゴ) http://cpplover.blogspot.jp/ boostcpp@gmail.com GitHub: EzoeRyou Themes Sky - Beige - Simple - Serif - Night - Default Transition Styles Cube - Page - Concave - Zoom - Linear - Fade - None - Default C++のメモリの種類 静的ストレージ スレッドストレージ 自動ストレージ 動的ストレージ 静的ストレージ 名前空間スコープの変数 static指定されたクラススコープ 関数のブロックスコープの変数など よくある実装例 プログラムファイルに格納 例:ELFにおける.dataや.bss スレッドストレージ thread_local指定された変数 よく

    kyab
    kyab 2014/05/15
    エバンジェリストすごい
  • C++ でのビルド時間を短縮するいくつかの方法 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    ある程度大きな C++ のコードを書いたことがある人なら大抵はこの問題について考えますよね。まして Boost なんて使っていた日には「コンパイル時間が Boost される」とか言われる訳です。 コンパイル時間を活用してコーヒー入れたりトイレ行ったりブラウジングしたり Twitter に「リビルドなう」とか Post したりといった素晴らしい方法もありますが、ここではビルド時間を短縮する方法を考えていきます。 事前知識 多分どこでも言われてることだと思いますし、結構適当に書いてるので読み飛ばしてもいいと思います。 コンパイルが遅い原因 C++ のコンパイル時間の多くは、プリプロセッサにあります。プリプロセス時に行われる include やマクロの展開でかなり多くの時間を取っています。 きっと Boost.PP なんて使っていた日には「コンパイル時間が Booooooooooooooooos

    C++ でのビルド時間を短縮するいくつかの方法 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
    kyab
    kyab 2014/04/09
    “自分は普通の C++ プログラマなのでヘッダに実装を書いていくわけです。” そういや並列コンパイルはあまり効かないのかな。
  • C++テンプレートテクニック 第2版 を出します - Faith and Brave - C++で遊ぼう

    2009年に出版した書籍『C++テンプレートテクニック』の第2版を出版します。 C++テンプレートテクニック 第2版 - Amazon.co.jp C++テンプレートテクニック 第2版 - SBクリエイティブ 発売日は、2014年4月17日(木)です。 C++テンプレートテクニック 書は、プログラミング言語C++のテンプレート機能に関する技法を解説したです。 プログラムをより汎用的にしていくにあたって起きる、様々な問題への解法を提供します。 第2版の更新内容 第2版の主な更新は、C++11への対応です。C++11に追加された機能を使用した各種技法を掲載しています。C++03の技法で今もなお有用なものは残してあります。 第2版では、以下のような変更を行いました: 第1版の章「Extension Member Function」および「C++0xにおけるテンプレート」を削除 新章「コンセプ

    C++テンプレートテクニック 第2版 を出します - Faith and Brave - C++で遊ぼう
    kyab
    kyab 2014/03/27
  • ドワンゴに入社した

    そう。タイトル通りだ。筆者、江添亮はドワンゴに雇用された。一体、どのような経緯でドワンゴに入社するに至ったのか。また、どんな仕事をしているのか。それを説明するには、時系列を追って書いたほうがいいだろう。 2013年8月21日 ふとみると、以下のようなサブジェクトのメールが届いていた。 【ご相談】ドワンゴ主催の C++11, 14 に関する勉強会にスピーカーとしてご参加頂けないでしょうか C++11? C++14? なんと、日C++14などという単語を知っている企業があったのか。しかし・・・ドワンゴ? SPAMだろうか。いや、こんなにピンポイントなSPAMがあるわけがない。 それにしても解せないメールだ。ドワンゴといえば、もちろん、あの有名なニコニコ動画の企業だ。ニコニコ動画と言えばWebサイトだ。ニコニコ動画やその関連サービスの開発にC++を使っているのだろうか。いやまて、たしか子会社

    kyab
    kyab 2014/02/14
  • スレッドセーフという幻想と現実 - yohhoyの日記(別館)

    この記事はC++ Advent Calendar 2013の15日目にエントリしています。 内容はC++標準ライブラリとスレッドセーフに関する解説になります。 flickr / rennasverden もくじ What's スレッドセーフ? スレッドセーフという幻想 基型とデータ競合 C++標準ライブラリとデータ競合 C++標準ライブラリ:シーケンスコンテナ編 C++標準ライブラリ:連想コンテナ編 スレッドセーフ RELOADED 基的なスレッドセーフ保証 std::shared_ptr<T> std::rand() std::cout (文のみ約9000字) はじめに マルチスレッド対応の点では他言語に遅れを取っていたプログラミング言語C++ですが、C++11ではようやく標準ライブラリにスレッドサポートが追加されました。C++11スレッドサポートではスレッドクラスstd::thr

    スレッドセーフという幻想と現実 - yohhoyの日記(別館)
  • VSTホストを作ろう! - hwm's blog

    VSTホストを作ろう! @hotwatermorningです。 この記事は、C++ Advent Calendar 2013の5日目の参加記事です。 はじめに 今回は、VSTiという種類のプラグインを読み込んで音を鳴らす、「VSTホスト」の作り方について紹介します。 VSTホストの画面を作るにあたり、「balor」というC++Windows GUIライブラリを使用しました。balorについてはリンク先をご参照ください。 この記事の内容について、筆者がVST規格について勘違いしている点があるかもしれません。 ご了承ください。 VSTとは VSTとは簡単に言うと音楽製作ソフトのプラグイン周りの規格です。Wikipediaでは、以下のように解説されています。 Steinberg's Virtual Studio Technology(一般的にはVST)とは、ソフトウェア・シンセサイザーやエフェ

    VSTホストを作ろう! - hwm's blog
  • C++14の新機能

    江添亮 http://cpplover.blogspot.jp/ boostcpp@gmail.com @EzoeRyou GFDL 1.3 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Themes Sky - Beige - Simple - Serif - Night - Default Transition Styles Cube - Page - Concave - Zoom - Linear - Fade - None - Default 注意 これは2013年10月13日に発行されたC++のドラフト規格に基づく 正式に制定され発行されたISO規格ではない まだ文法や機能は変わりうるものと心得よ 二進数リテラル ヤレ由良助待兼たはやい 塩冶判官 2進法以外は使えねーし使わねー

    kyab
    kyab 2013/11/15
  • ゲーム開発者のための C++11/C++14

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami

    ゲーム開発者のための C++11/C++14
    kyab
    kyab 2013/09/16
    よくまとまってる。
  • DynamicPatcher - Runtime C++ Editing - primitive: blog

    [2013/12/25 追記] この DynamicPatcher をさらに改良し、Visual Studio のアドインとして実装した Alcantarea をリリースしました DynamicObjLoader を改良し、実用に耐えそうな実行時 C++ コード編集機能を実装しました。 C++ コードを編集してそれをリアルタイムに反映させることができます。 DynamicPatcher https://github.com/i-saint/DynamicPatcher (bin) DynamicObjLoader の時点で一応は同等機能を実現していたのですが、更新したい関数を事前にマクロで包む必要があったり、virtual 関数を持つ class はシリアライズが必要だったりと、運用上色々面倒な点がありました。 今回はそのへんが大きく改良されています。 ・前準備なしに既存のほぼ全ての関数を

    DynamicPatcher - Runtime C++ Editing - primitive: blog
    kyab
    kyab 2013/06/07
    実行時にC++編集。すごすぎ。
  • Clang Language Extensions — Clang 19.0.0git documentation

    Introduction¶ This document describes the language extensions provided by Clang. In addition to the language extensions listed here, Clang aims to support a broad range of GCC extensions. Please see the GCC manual for more information on these extensions. Feature Checking Macros¶ Language extensions can be very useful, but only if you know you can depend on them. In order to allow fine-grain featu

    kyab
    kyab 2013/06/02
    Clang拡張