タグ

c++に関するTAKEmaruのブックマーク (6)

  • ランダム Cプログラムジェネレータ Csmith - Shohei Yoshida's Diary

    はじめに ランダム Cプログラムジェネレータ Csmithの紹介. http://embed.cs.utah.edu/csmith/ コンパイラのテストでランダムテストは効果的であるというのが 昔から言われていまして、いくつかその手のものがあるのですが、 Csmithは GCCや llvm-clangで多くのバグを見つけたというのが 紹介されていたので気になってました。 論文は結構前から読めたのですが、ソースが公開されたのは 最近なのでインストールして使ってみました。そのときのメモ。 ビルド あんまり詳細なことが書かれていないのでよくわかってないですが、 C++コンパイラがあればビルドできると思います。 Ubuntu 10.10(x64) g++ 4.4.5で確認しました. % wget http://embed.cs.utah.edu/csmith/csmith-2.0.0.tar.gz

    ランダム Cプログラムジェネレータ Csmith - Shohei Yoshida's Diary
  • 本の虫: rvalue reference 完全解説

    目的 この記事は、C++0xのrvalue referenceを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からrvalue referenceを恐れることなく使う物のC++0xプログラマになれるだろう。 lvalueとrvalueについて Cの時代では、lvalueとrvalueの違いは、代入演算子の左側か右側かという違いだけであった。つまり、left hand value, right hand valueの略である。従って、訳語も、左辺値、右辺値であった。C++においては、これはもはや正しくはない。従って、右辺値、左辺値というのも、誤訳である。それ故に、ここでは、これ以上、左辺値、右辺値という名称を使用しない。 誤解を恐れずにいえば、lvalueとは、明示的に実体のある、名前付きのオブジェクトであり、rvalue

    TAKEmaru
    TAKEmaru 2016/11/28
  • C++初心者がC++を使って競技プログラミングするための備忘録のようなもの

    kyoupro_on_cpp.md C++初心者がC++を使って競技プログラミングするための備忘録のようなもの この記事は、C++ (fork) Advent Calendar 2013の12日目の記事です。 はじめに 記事を書く人が居ないみたいなので、C++初心者ですが箸休め的な記事を書こうと思い立ち、いざ書き上げてみたら思いの外長くなりました。 この記事は、C++初心者な著者が、C++を用いて競技プログラミングをするために、調べたことや試した事などのまとめです。 記事中に誤り、問題点やご指摘、ご質問等ありましたら、@rigibunまでご連絡下さい(特にpush_bach) githubmarkdownを使いたかったことと、変更履歴が見られることからgistで書きました。 免責事項 著者はこの記事を利用することによって生じたいかなる損害等に対して責任を負いません。 この記事は競技プログ

    C++初心者がC++を使って競技プログラミングするための備忘録のようなもの
    TAKEmaru
    TAKEmaru 2016/11/15
  • 普通のコンピューターからAMラジオを鳴らそう

    読者の持っている至って普通のコンピューターは、実はAMラジオを鳴らす発信装置が備わっている。 ラジオを鳴らすコードは以下にある。 https://github.com/fulldecent/system-bus-radio ただしこれはMac OS Xでしか動かないので、C++11に移植したコードが以下になる。また、このコードはスレッドを回して消費電力を上げることにより、オリジナルより出力も上げてある。 https://github.com/EzoeRyou/system-bus-radio 動かし方(GCCの場合) git clone git@github.com:EzoeRyou/system-bus-radio.git cd system-bus-radio make gmain make grun Clangの場合、以下のようにする。 make cmain make crun そし

    TAKEmaru
    TAKEmaru 2016/03/03
    “今日はこればかりやっていて、あまり仕事をしていない。これからする。 ドワンゴは本物のC++プログラマーを募集しています。”
  • http://codereply.com/answer/43dmu5/throwing-c-exception-inline-asm-jump.html

    TAKEmaru
    TAKEmaru 2015/06/22
  • volatileで最適化を抑制する - 職業としてのプログラミング

    C言語やC++,Javaにはvolatileという修飾子があります。組み込み系ソフトウェアやマルチスレッドのアプリケーションを書いている方にとっては、なじみ深い存在ですが、そうでない方にはあまり縁がないのかもしれません。しかし、volatileの使い方や存在意義を知らないままコーディングを行うと、思わぬバグを引き起こす場合があります。今回は、そのvolatileキーワードについて簡単に説明したいと思います。 volatileは初期のCであるK&Rには含まれていませんでしたが、ANSI C(C89)以降のC標準規格にはconstと一緒に含まれるようになりました(constとvolatileをあわせてcv修飾子と呼ぶこともあります)。一般的なCなら必ず備えている修飾子です。 volatile修飾子の意味ですが、「プログラミング言語C ANSI規格準拠」によると、 volatileの目的は,黙っ

  • 1