タグ

c++に関するyasuharu519のブックマーク (114)

  • 競プロ勢の皆さんもISUCONに参加して圧倒的成長しませんか?

    この記事は Competitive Programming Advent Calendar 2016 の 24 日目の記事です。 競プロ勢の皆さんも ISUCON に参加して圧倒的成長しませんか? ISUCON とは、Web アプリケーションを高速化するプログラミングコンテストです。 競技プログラミングはアルゴリズムを学ぶ上では最強の教材ですが、研究職以外では即戦力としては見られづらいという問題があります。 ISUCON には Web 業界で必要な基礎知識がつまっており、競技プログラミング勢がたくさん ISUCON に参加すれば、 競技プログラミング勢も Web 業界も躍進できるのではないかと思いこの記事を書きました。 また、競技プログラミング勢が入賞すれば、競技プログラミングの潜在的な価値が認められ競技プログラミングの認知度が上がることを期待しています。 Web 開発でボトルネックとなる

  • cmocka - unit testing framework for C

    cmocka is ... an elegant unit testing framework for C with support for mock objects. It only requires the standard C library, works on a range of computing platforms (including embedded) and with different compilers. Download here Learn more API Mission Statement The goal of this project is to provide a powerful testing framework for C, on different platforms and operating systems, which only requ

  • 前置インクリメント vs 後置インクリメント | 闇夜のC++

    後置インクリメントにはひと目で遅くなりそうな処理が見て取れますね。 前置インクリメントがインクリメント処理後、単純に自身の参照を返すのに対し、後置インクリメントではインクリメント前に一時オブジェクトの生成、そしてインクリメント後にはその前に生成した一時オブジェクトを値で返しています。 前置と後置では、単純にオブジェクトをコピーして返す分、普通に考えたら後置の方が遅いよね。というのが従来の認識でした。 「C++ Coding Standards -101のルール、ガイドライン、ベストプラクティス」の中でも、特に後置インクリメントの必然性が無い時は迷わず前置インクリメントを使うことが推奨されてきました。 元の値を必要としないときは前置形式の演算子を使おう __C++ Coding Standards (p50) 新たな主張 「ゲームエンジン・アーキテクチャ第二版」の中の一節を紹介します。 しか

  • 超会議2016でドワンゴの運営スタッフとして焼きそばを焼いた感想

    「江添さん、超会議で焼きそばを焼きませんか?」 恰幅のいい同僚が話しかけてきた。この男はドワンゴの料理研究部の部長である。 ドワンゴには福利厚生として同好会の設立を会社に申請でき、受理された同好会には部費も支給される。最も、会社が経費として出す金なので、いろいろと制約がある。例えば、飲費用には使えない。料理研究部は調理器具や職場近くのキッチンのレンタルなどに部費を使っている。 「焼きそば? 少し前に話題になったアレをネタにするつもりですかな。しかし、もう旬は過ぎてしまったのではありませんかな」 「アレ」というのは他でもない。一時期、ドワンゴから退職が相次いだ時期があり、その時のある退職者に対して、退職理由がよくわからないとドワンゴの川上宣夫会長と伊藤直也氏がスシをつまみながらのインタビュー記事で書かれたことを受けて、元ドワンゴ社員のkuzuhaが、言及されている退職者というのは自分であろ

    yasuharu519
    yasuharu519 2016/05/01
    えぞえさん
  • ロボティクスのためのGoogle TestによるC++コードユニットテスト - MyEnigma

    テストから見えてくる グーグルのソフトウェア開発posted with カエレバジェームズ・ウィテカー,ジェーソン・アーボン,ジェフ・キャローロ 日経BP社 2013-05-23 Amazonで探す楽天市場で探すYahooショッピングで探す 目次 目次 はじめに Google Test Google Testのインストール方法と実行方法(Linux, Mac) Google Testによるテストコードの書き方 二種類のアサーション アサーションコード 最も簡単なテストコード 複数のテストで共通のコードを使う方法 再帰的にテストコードを検索し、テストを実行するPythonスクリプト モックとスタブ 参考資料 MyEnigma Supporters はじめに 下記のツイートのように、 最先端のロボットのシステムは非常に複雑なので、 きちんとソースコードのユニットテストを作成し、 CI(Cont

    ロボティクスのためのGoogle TestによるC++コードユニットテスト - MyEnigma
  • C++11のスレッド、アフィニティ、ハイパースレッディング | POSTD

    背景と導入 何十年もの間、CやC++の標準規格は、マルチスレッディングや並行処理を「その標準の範囲を超えたもの」として扱ってきました。標準規格の目的である”抽象機械”の力が及ばない、”対象依存”という影の世界においてです。メーリングリストやニュースグループの質問には並行処理に関するものが山ほど寄せられましたが、それらにすぐに突き返された回答は「C++はスレッドには関知しません」という何とも冷淡なものでした。この件によって当時のことを思い出す人々は、今後も絶えないでしょう。 しかしC++11の登場で、そんな状況に終止符が打たれたのです。C++標準化委員会は、時代の流れに乗らないと、この先C言語が取り残されてしまうと悟ったのでしょう。彼らはスレッドや同期メカニズム、アトミック操作、メモリモデルなどの存在に、ようやく気付いたわけです。そして標準規格として、C++コンパイラやライブラリのベンダーに

    C++11のスレッド、アフィニティ、ハイパースレッディング | POSTD
  • } // good to go

    Okay, let's see what we've got. Two sets of annotated training materials. Six books. Over four dozen online videos. Some 80 articles, interviews, and academic papers. A slew of blog entries, and more posts to Usenet and StackOverflow than you can shake a stick at. A couple of contributions to the C++ vernacular. A poll equating my hair with that of a cartoon character. I think that's enough; we're

  • C++ でビットフィールドを再発明する | tech - 氾濫原

    ビットフィールドとは C/C++にはほとんど使われてないがビットフィールドという機能がある。 union { uint8_t raw; struct { unsigned FAULT_QUEUE : 2; unsigned CT_PIN_POLARITY : 1; unsigned INT_PIN_POLARITY : 1; unsigned INT_CT_MODE : 1; unsigned OPERATION_MODE : 2; unsigned RESOLUTION : 1; }; } config; このように書ける。struct 内で名前の後ろについているのが、そのフィールドで消費するビット数で、この場合合計で8bitになり、それを uint8_t と共用している。 こうすると config.OPERATION_MODE = 2; などと、マスクやシフトを伴わずに直接書けて、結果

  • 女性のためのC++コミュニティ Ladies++を立ち上げました - ぴよぴよ.py

    12月に女性C++erのための、Ladies++というコミュニティを立ち上げました。 今回はLadies++や女性コミュニティについて紹介しようと思います。 この記事は、 Geek Women Advent Calendar 2015 の23日目の記事です! 様々な女性コミュニティ 最近はたくさんの女性向け技術コミュニティがあります。 Rails Girlsなんかが有名かもしれませんが、 Pythonの女性コミュニティPyLadiesや、Java女子部等も活発に活動がされています。 Rails Girls - Japanese PyLadies Tokyo | Official Site Welcome | Women Who Code Java女子部 | Doorkeeper なぜ女性でコミュニティなのか 今年のPyConJP2015では、女性コミュニティに関する「いま求められるコミュニ

    女性のためのC++コミュニティ Ladies++を立ち上げました - ぴよぴよ.py
  • テクノとしてのC言語、あるいはC99的書き方のすすめ - Qiita

    以下、読書感想文としてのポエムである。 21st Century C1(以下 21CC と略)という、いささか変わったがある。C言語のプログラマの多くが1980年代の知識に固まってしまっているのを打破しようと書かれたなのだろうと、ざっと自分が1st editionを読んだ感じ2では思っている。C89 aka ANSI Cがいまだに標準だと思っている人3には、おすすめかもしれない。 「Cはパンクロックだ」 21CCでは C is Punk Rock 4 という表現が書籍の最初と最後に出てくる。このパンクロックが何であるかについての議論はしない5。ただ、パンクロックの例えが「シンプルかつ荒削りだけど力強い」言語に対するものであるというのは、個人的なパンクロックへの印象、そしてC言語の特徴をふまえれば良くわかる。 私も気がつけば30年ぐらいC言語で仕事をしていたりする。そして現在の2015年

    テクノとしてのC言語、あるいはC99的書き方のすすめ - Qiita
  • boost::property_tree - KMC活動ブログ

    この記事はKMC Advent Calendar 2015 - Adventar 21日目の記事です。 20日目の記事は、zetaさんの天下一品フェア2015でした。 はじめに KMCのastatineです。 私は、昨年度の間ずっと衛星のデータ解析のコードをC++で開発し続けた結果、 「C++って人間*1に分かりやすい言語ですね。」と言う闇魔道士になってしまいました。 このKMC Advent Calenderは、 Pietという謎言語の話だったり、 #shellというslackの闇channelの話だったり、 旅行記だったりと、 KMCらしい混沌とした流れになっています。 そんな中、私は私らしくC++の話をしようと思います。 皆さんは、C++で計算結果等をファイルに書き出すときどのようにしているでしょうか? カンマやスペース区切りでの出力は簡単なコードで行えます。 行列や関数のグラフでは

    boost::property_tree - KMC活動ブログ
  • How I wrote a self-hosting C compiler in 40 days

    Rui Ueyama — December 2015 I wrote a self-hosting C compiler which I named 8cc in 40 days. This is a log when I was writing it from scratch by myself in 2012. The code and its history are available at GitHub. Day 8 So I'm writing a compiler. It started working after writing about 1,000 lines of code. Here are some examples of code that work with the compiler: int a = 1; a + 2; // => 3 int a = 61;

  • agilecatcloud.com

    This domain may be for sale!

  • C++のポインタ渡しと参照渡しの使い分け - ぴよぴよ.py

    社会人1年目、会社で部署に配属された初日に、 上司に「C++は全然わからないです!」って言ったら、 「お前がわかってないのはC++じゃなくてコンピュータの基礎だ」 と言われたくーむです。こんばんは。 今日は 初心者 C++er Advent Calendar 2015の8日目(7日目?)の記事です。 C++歴は1000行くらいの超初心者です。 CodingameとかHAL研プロコンで使ったことがあるけど、 仕事ではなかなかガッツリ書く機会がなくて、毎日数行足したり減らしたりしてだけなので、 なかなかC++力つきません。 ポインタコワイ Python界からきた私にとってポインタは超怖い子です。 そもそも変数の前に記号が付いてるだけでコワイ。(PerlPHPもコワイ) そんなこと言ってたら友人がこのを貸してくれました(多分もう売ってない) 秘伝C言語問答 ポインタ編 (柴田望洋プログラミン

    C++のポインタ渡しと参照渡しの使い分け - ぴよぴよ.py
  • 競技プログラマのためのC++ - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ

    この記事はCompetitive Programming Advent Calendar 2015の6日目の記事として書かれました。 この記事は、C++初心者が頑張って編み出した、C++初心者の競技プログラマ向けの実装テクニックを紹介するものです。 筆者自身がC++に詳しいわけではないため、仕組み等の解説は避け、「こう書けばいい感じに動くよ」みたいな部分だけを書いていきます。 「競プロでの応用例」という点に注目して読んでいただければと思います。 目次 ・range-based for(前菜) ・lambda式(メイン) ・コメントアウトの小技(おまけ) まずは、C++11の新機能を使ったテクニックから紹介します。 range-based for これはよく知られていると思います。以下のように書くとvectorとかmapとかを舐められるやつです。 for (型 変数名 : 舐める対象) 使用

    競技プログラマのためのC++ - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ
  • Effective Modern C++ メモ - Qiita

    自分にとっての要点メモ。 Effective C++の著者のScott MeyersによるC++11/14の定番(らしい) ※知らずに買ったら英語だったので、なんとか通読しましたが理解は随所怪しいと思われます。誤りは是非ご指摘ください。 2015/11/02追記: 日語版が出ています。稿は日語訳が出る前に書いたのなので目次の訳は一致しません。ご注意ください。 https://www.oreilly.co.jp/books/9784873117362/ 第1章: 型推論 autoやdecltypeによる型推論はコードの冗長性を減らす強力な機構だが、型推論の動きをしっかり理解していないとmodern C++での効率的なプログラミングはほぼ不可能。 1: テンプレート型推論を理解しろ 関数テンプレートtemplate<typename T> void f(ParamType param)

    Effective Modern C++ メモ - Qiita
  • volatileとatomicの違い - 簡潔なQ

    volatileとatomicの違いを調べるために、以下のC++プログラムをコンパイルしてみる。 #include <atomic> void func1(int *p) { ++*p; ++*p; } void func2(volatile int *p) { ++*p; ++*p; } void func3(std::atomic_int *p) { ++*p; ++*p; } $ g++ -std=c++11 -pthread -O2 -Wall -Wextra -g -c func.cpp -o func.o環境による可能性はあるが、出力された機械語は端的に言うと次のようなものになる。(なおアーキテクチャはLinux x86-64) func1: addl $2, (%rdi) ret func2: movl (%rdi), %eax addl $1, %eax movl %eax

    volatileとatomicの違い - 簡潔なQ
  • Big Sky :: C++ の数式パーサ Lepton で遊んでみた。

    Lepton という数式パーサを見つけたので遊んでみた。 Simtk.org: Lepton Mathematical Expression Parser: Overview Purpose/Synopsis: A small C++ library for parsing, evaluating, differentiating, and analyzing mathem... https://simtk.org/home/lepton 一般的な数式パーサは expression を token に分解するのみだが、この lepton はもう1歩踏み込んだ処理が行える。 通常の数式は以下の様にパースし実行出来る。 #include <iostream> #include <string> #include <map> #include <Lepton.h> int main(int ar

    Big Sky :: C++ の数式パーサ Lepton で遊んでみた。
  • Home - Metashell

    Home Metashell Motivation License Getting Metashell Supported platforms Supported compilers Binary installers Building Metashell User manual Getting started The environment in Metashell Using different compilers Troubleshooting Embedding Metashell How to... Reference The pragmas MDB commands PDB commands The built-in headers Engines Developer guide Building Metashell Creating a Metashell release T

    yasuharu519
    yasuharu519 2015/09/24
    c++のrepl
  • C++における構造体の初期化 | 株式会社きじねこ

    「[迷信] とりあえず memset で初期化」へのアクセスは相変わらず多いのですが、解説があっさりしているために十分意図が伝わっていないことも少なくないようです。これまでも何度か補足的な解説を行ってきたのですが、今回もその一環として、補足解説を行うことにします。 一般的な話をすると、どうしても解説が抽象的になってしまい、その結果またしても十分に意図が伝わらないということが起きそうです。そこで、今回は解説の対象を絞り込み、できるだけ具体的な話をするつもりです。今回対象とするのは「C++の構造体の初期化」です。Cの話ではありません。また、「初期化」と書いていますが、いわゆる初期化子による初期化だけでなく、最初に値を設定する意味上の初期化も対象とします。 利用者定義のコンストラクタを持つ構造体 意外に思われる方も少なくないと思いますので、最初におさらいをしておきます。構造体というのはデータメン