タグ

C++に関するnosnosnosのブックマーク (8)

  • C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 先日、社内で主にLinux上でC/C++を用いている開発者向けの講義をしました。 「こんなことができる」と知ってもらい、興味を持てば各自で勉強してもらおうと広く浅くツールを紹介しました。 gtags, ASan, Valgrind, addr2line, cppcheck, SystemTap, perfなどです。 興味があれば講義資料「C/C++プログラマのための開発ツール」をごらんください。 コンパイラオプション 受講者には新人やサイボウズ・ラボユースの学生もいたので基的なところから紹介しました。 C/C++コンパイラを使うときはできるだけ警告オプションをつけるのが望ましいです。 警告が出るのは自分のコードの書き方に不備があることが多いからです。 gccやclangでは-Wall -Wextraは基としてそれ以外にも有用なオプションがあります(C++

    C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ
  • GitHub - keigo-brook/atcoder_greedy: 楽にatcoderを使いたい

  • コマンドラインからVisualStudioをビルドする - Qiita

    ソリューションがでかくなるとビルドが落ちるのでバッチファイルを作った。 バージョンやインストールした場所によって指定するフォルダーが変わったりするので適宜変更をお願いします。 rem バッチファイルにしておくと定期的にビルドできる rem ビルド個所に移動(VS2005の場合) cd /D D: cd D:\Projects\Sapporo\SVN-Source\Source rem devenv.exeのある場所を指定して実行。%~dp0/ はバッチファイルのある場所の意味。 "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv" /rebuild release /out %~dp0/build.log [ソリューション名].sln ■[VisualStudio]各プロジェクトのVisualStduioの開発バージ

    コマンドラインからVisualStudioをビルドする - Qiita
  • smallpt: Global Illumination in 99 lines of C++

    Kevin Beason / smallpt is a global illumination renderer. It is 99 lines of C++, is open source, and renders the above scene using unbiased Monte Carlo path tracing (click for full size). Features Global illumination via unbiased Monte Carlo path tracing 99 lines of 72-column (or less) open source C++ code Multi-threading using OpenMP Soft shadows from diffuse luminaire Specular, Diffuse, and Glas

  • C++のTips - XORSHIFTによる乱数:tech.ckme.co.jp

    XORSHIFTアルゴリズムによる乱数は、非常にシンプルなコードでメルセンヌ・ツイスターに近い良質な乱数を生成する。 #include <iostream> #include <cmath> using namespace std; unsigned long xor128(void) { static unsigned long x=123456789,y=362436069,z=521288629,w=88675123; unsigned long t; t=(x^(x<<11));x=y;y=z;z=w; return( w=(w^(w>>19))^(t^(t>>8)) ); } int main(void) { unsigned long sum=0; for (int j=0;j<1000;j++) { for (int i=0;i<100000;i++) { sum+=xor1

    nosnosnos
    nosnosnos 2016/05/03
    乱数
  • シグナルの操作(1) | LinuxC

    ここではシグナルの操作を行うシステムコールについて解説していきます。 シグナルにはSVR(SysV)とBSDで解説した通り、Unixでは異なる大きな2系統歴史があります。現在あるUnixもちろんLinuxもですが、これらを統合した形になっています。 ここではこれらの歴史の詳しい説明までは省きますが、ここを頭においていただければと思います。 さらにシグナルには注意事項が多くありますがこれらも紹介していきます。 ポインタ 関数ポインタ まず最初に関数ポインタの説明から。関数ポインタはポインタの中でも高度な部類になりますが、皆さん使えますか? シグナルではいわゆるコールバックの指定に関数ポインタが必要になってきますので簡単に説明をします。 void hoge(void) { printf("hoge\n"); } int main(void) { void (*func)(void); func

    シグナルの操作(1) | LinuxC
    nosnosnos
    nosnosnos 2016/04/19
    自分自身にkillコマンド
  • Ruby1.8/1.9両対応のC拡張モジュールを作る方法 - FIELD NOTES: 書を持って街へ出よう

    Python用に作成した拡張モジュールをRubyに移植する必要があり,Ruby拡張モジュールの作成方法を調べました。 以下の仕様を満たすgemパッケージを作成することが目的になります。 Ruby1.8とRuby1.9に両対応したC拡張モジュールを作成する。 Foo::Barのように階層を持たせた名前空間とする。 コンパイル済みのバイナリモジュールを含むgemパッケージとする。 私自身は,Rubyが出はじめた頃に一時使っていたものの,その後Pythonに乗り換えてしまったので,最近のRubyの事情はまったく分かっていません(10年以上ブランクがある)。 勘違いしている所もあるかと思いますので,指摘して頂ければ幸いです。 なお,動作確認は Mac OS X 10.6.6 で行っています。 参照資料 Ruby拡張モジュールの作成方法としては「README.ext.ja」が一次資料と思われますが,

    Ruby1.8/1.9両対応のC拡張モジュールを作る方法 - FIELD NOTES: 書を持って街へ出よう
    nosnosnos
    nosnosnos 2016/02/22
    hash展開
  • Ruby用拡張ライブラリをCで作る

    Ruby用拡張ライブラリをCで作る Rubyは、C(あるいはC++)で書いたコードを動的(あるいは静的)にリンクして利用する事ができる。うまく使えば、Rubyで書くより高速な動作が期待できる。 たとえば、GUIライブラリである「Ruby/GTK」は、描画部分にCで書かれたライブラリを利用する事で、実用的な画面描画速度を確保している。 その、Ruby用拡張ライブラリをCで書く方法である。 ■ 拡張ライブラリ作成の流れ Rubyはオブジェクト指向言語である。オブジェクト指向言語におけるプログラムとは、基的にクラス定義である(と、少なくとも私は思っている)。そこで、ここではクラス定義に話を絞る。 メソッドの実体となる関数を定義する Init関数を作る rb_define_classで、新しいクラスを作る rb_define_methodで、クラスに1で作成したメソッドを追加する Makefil

    nosnosnos
    nosnosnos 2016/02/22
    T_HASH
  • 1