タグ

c++に関するgymnoのブックマーク (142)

  • C++14の仕様策定が完了しました - Faith and Brave - C++で遊ぼう

    We have C++14! - Standard C++ C++14のDIS(Draft International Standard)に対する各国の投票が行われ、満場一致で承認されました。各国から(主に日から)のコメントによる文面の細かな修正が残っていますが、その作業が完了次第、ISO/IEC 14882:2014(E) Programming Language C++、別名C++14の規格が発行されます。 C++14は、2011年に発行されたC++11に対するマイナーバージョンアップです。小さな機能追加、および文面のバグ修正が含まれます。 C++14の更新内容は、以下のエントリにまとめてあります: C++14の言語拡張まとめ コンパイラの実装状況(言語機能) 次はC++17です。そちらはメジャーバージョンアップになる予定で、その議論はすでに始まっています。

    C++14の仕様策定が完了しました - Faith and Brave - C++で遊ぼう
    gymno
    gymno 2014/08/21
  • C++1y exchange()関数 - Faith and Brave - C++で遊ぼう

    N3511 exchange() utility function C++11ではアトミック操作のライブラリで、std::atomic_exchange()という関数が導入されました。この関数は、第1引数として受け取ったポインタが指す値を、第2引数の値で置き換え、戻り値として置き換え前の値を返します。 #include <iostream> #include <atomic> int main() { std::atomic<int> x(3); int before = std::atomic_exchange(&x, 2); std::cout << before << std::endl; // 変更前の値 std::cout << x.load() << std::endl; // 変更後の値 } 3 2この経験を踏まえて、非アトミックな値に対するexchange()関数を導入しよ

    C++1y exchange()関数 - Faith and Brave - C++で遊ぼう
    gymno
    gymno 2014/08/21
  • Python Hack-a-thon 2010.07で「本当にあった怖い話」をしてきました - 神様なんて信じない僕らのために

    土曜日のPython Hack-a-thon 2010.07で「当にあった怖い話」をしてきました。 会場を提供してくださったオラクルさん、 そして、スタッフの皆さん、色々準備ありがとうございました。 また、参加者の皆さんお疲れ様でした! (レポートは別途書きます) で、俺のプレゼンは完全にネタなので、ご了承ください。(特にC++erの皆さん) 前半は前振りなので、あまり気にしないでください。 プレゼン中で某C++な人達の写真や、Twitter発言が引用してありますが、 もし問題があればお知らせください。 「ソースを読もう」とか意味ないですので飛ばすの推奨。 また、なんか話したいなあ。 C++の話(当にあった怖い話)View more presentations from Isoparametric . あと、プレゼン中で「C++の設計と進化」を勧めていますが、 C++のことわからないと

    Python Hack-a-thon 2010.07で「本当にあった怖い話」をしてきました - 神様なんて信じない僕らのために
  • g++ でカバレッジを取得する - higepon blog

    最近 Erlang でコードを書くときにカバレッジをとっている。TDD で開発を進めていて make check するとテストが走る。テスト終了後にブラウザでカバレッジが表示されるようにしてある。カバレッジの重要性はCode Completeを読むとよく分かる。カバレッジをとると安心感が違う。書いたコードの不安な部分(不吉なにおいのする場所)を「テストが実際に実行しているか?」を確認できる。その確認により不安から解放され、目の前のコードに集中できるようになる。しかもカバレッジで判明する実行されていない部分にはたいていバグがある。 さて最近 Mona の安定性を上げるべく色々試しているのだが w3m で多くのサイトを訪れたり、Mosh の起動・終了を繰り返すとカーネル内の malloc が NULL を返す現象に悩まされている。最初はメモリリークしているだけだと思っていたがよく調べてみると、

    g++ でカバレッジを取得する - higepon blog
    gymno
    gymno 2010/07/01
    テストが全てのコードを網羅できるように
  • Spaghetti Source - 各種アルゴリズムの C++ による実装

    ACM/ICPC(プログラミングコンテスト)系列の問題を解くことを目標にして,各種アルゴリズムを C++ で実装してみた.極めて意地が悪い類の問題には対応していないし,特定の入力に対して高速に動くということもない.計算量も最良とは限らない. これらを参考にする方への注意とお願い: これらの記述は正確とは限りません.参考文献を参照することを強く推奨します.間違っている場合は是非教えてください. これらのプログラムは間違っているかもしれません.各人で検証することを強く推奨します.バグがあれば是非教えてください. 分類が怪しいので,これはこっちだろう,ということがあればコメントを下さると助かります. 注意! 現在書き換え中 TODO 分類を正しく行う. 全体的に説明と使い方を詳しく. Verify していないものを Verify. ボロノイ図(いつになることやら……) 基 テンプレート グラフ

  • Boost.Python の機能をざっと紹介してみる - moriyoshiの日記

    Boost の一部ながらも「実用的」すぎるため、とかくテンプレートメタプログラミングを愛好する諸兄から黙殺されてきた不幸のライブラリ、Boost.Python。Boost.勉強会でこいつの魅力を伝えようと思ったのだけど、時間の都合で無理だったので、簡単に紹介してみたい。 Boost.Python の基礎 Boost.PythonC++ のクラスや関数をラップする Python モジュールを恐ろしく簡単に書けるようにする、強力なライブラリである。 特に、Pyrex や Cython と比べて何がうれしいのかというと、 Python側にいちいちラッパ関数を書かなくてよい (テンプレートにより自動的に定義される) コンバータを登録することで、PythonC++の型の透過的な変換が容易にできる C++ のクラスを分かりやすい形で Python のクラスとして見せることが可能 といった点が挙

    Boost.Python の機能をざっと紹介してみる - moriyoshiの日記
  • グーグル、オープンソースのプログラミング言語「Go」を発表

    Googleは米国時間11月10日、オープンソースのプログラミング言語「Go」を発表した。Goは、首席ソフトエンジニアRob Pike氏やUNIXの共同開発者のKen Thompson氏らで構成されるチームにより開発された。 現在、Goプロジェクトは、プログラミング言語、コンパイラ、Goで書かれたプログラムに多くのビルトイン機能を与えるランタイムパッケージプログラムで構成されている。Pike氏によると、Goは、CおよびC++と類似しているが、最新の機能を採り入れ、ウェブブラウザ内でも使用可能にするなどの汎用性を備えているという。 Goは、ソフトウェアをマルチコアプロセッサで実行する場合に発生する問題に対処するよう開発されている。またオブジェクト指向プログラミングが持つ問題点を緩和するためのアプローチが取られているほか、同社はオープンソースブログで、Pythonのようなダイナミック言語で作業

    グーグル、オープンソースのプログラミング言語「Go」を発表
  • Googleの新しいプログラミング言語Go == Python(開発が速い) + C++(実行速度が速い)

    The RAW Dating App aims to shake up the dating scheme by shedding the fake, TikTok-ified, heavily filtered photos and replacing them with a more genuine, unvarnished experience. The app…

    Googleの新しいプログラミング言語Go == Python(開発が速い) + C++(実行速度が速い)
  • Opera News

  • Haskell、OCamlでSPH法

    このエントリに載せていたC++のコードを、HaskellとOCamlで書いてみました。(あと、C++のコードも整理しました) コードを置いておきます。 Haskell版(sph.hs) OCaml版(sph.ml) C++版(sph.cpp) Haskell版(sph.hs)の実行方法は、 $ ghc --make -O sph.hs $ ./sph 300 です。./sphの引数は計算するステップ数です。上記のsph.zipにはData/Vector.hsというベクトル演算のためのモジュールを入れてあります。 同様に、OCaml版(sph.ml)の実行方法は、 $ ocamlopt -pp 'camlp4o -parser Camlp4ListComprehension' -o sph sph.ml $ ./sph 300 です。-ppオプションは、プリプロセッサにCamlp4を使ってO

    Haskell、OCamlでSPH法
  • GitHub - tanakh/cmdline: A Command Line Parser

    This is an example of simple usage. // include cmdline.h #include "cmdline.h" int main(int argc, char *argv[]) { // create a parser cmdline::parser a; // add specified type of variable. // 1st argument is long name // 2nd argument is short name (no short name if '\0' specified) // 3rd argument is description // 4th argument is mandatory (optional. default is false) // 5th argument is default value

    GitHub - tanakh/cmdline: A Command Line Parser
    gymno
    gymno 2009/10/30
    option解析 ヘッダをincludeするだけ vcではcxxabi.hがなくてだめっぽい
  • インテル コンパイラーで試す次世代C++規格「C++0x」 | OSDN Magazine

    インテル コンパイラーではOpenMP 3.0やC++ラムダ関数、並列コンパイルといった、新規格や最近注目されている機能がいち早く取り入れられている。記事では、インテル コンパイラーが採用した新規格について解説する。 インテル コンパイラーの特徴の1つに、新しい技術や標準規格への素早いサポートが挙げられる。たとえば最新のインテル コンパイラー 11.1では、プログラムを簡単に並列化できる新たなキーワードが追加されているほか、11.0からの機能として現在策定中のC++の新規格「C++0x」や、新たな並列化基盤「OpenMP 3.0」のサポートが追加されている。記事ではこれらの機能について、簡単ではあるがその概要と使用例を紹介しよう。 C++ 0xのサポート C++は1983年代に開発されて以来、しばらくは公式な標準化規格が存在せず、各コンパイラメーカーにより独自に拡張が加えられていった。

    インテル コンパイラーで試す次世代C++規格「C++0x」 | OSDN Magazine
    gymno
    gymno 2009/10/06
  • マルチスレッド/並列プログラミングの必携ツール「インテル Parallel Studio」徹底活用 | OSDN Magazine

    Intel Core 2シリーズの登場以来、一般的なPCにおいてもマルチコアCPUが普及しつつある。それとともに注目を浴びつつあるのが、プログラムの並列化/マルチスレッド化だ。そんな中、インテルから、並列プログラミングを強力にサポートする開発ツール「インテル Parallel Studio」(以下、Parallel Studio)が登場した。 Parallel Studioは自動並列化/最適化機能を備えた「インテル コンパイラー」やデバッガを含む「インテル Parallel Composer」と、プログラムのパフォーマンスを測定するマルチスレッド対応プロファイラ「インテル Parallel Amplifier」、メモリエラーやマルチスレッドプログラムにおけるスレッド間のデータ競合などを検出する「インテル Parallel Inspector」で構成される、新たな開発ツールである。また、今後

    マルチスレッド/並列プログラミングの必携ツール「インテル Parallel Studio」徹底活用 | OSDN Magazine
  • Linkers and Loaders

    These are the uncorrected manuscript chapters for my Linkers and Loaders, published by Morgan-Kaufman. See the book's web site for ordering information. The text in these files is the unedited original manuscript. M-K has fine copy editors, who have fixed all the minor typos, spelling, and grammar errors in the printed book, but if you come across factual errors I'd still appreciate help getting a

  • 勇躍のゴミ箱

    C言語 目的別 画面への文字出力 画面へ1文字単位で出力 画面へ1行単位で出力 画面へ書式付きで出力 可変個引数を書式付き表示 キーボードから文字入力 入力を1文字単位で取得 入力を1行単位で取得 入力を書式付きで取得 ストリームに1文字戻す 文字列データの入出力 文字列から書式付きで取得 文字列へ書式付きで出力 可変個引数を書式付き出力 ファイルオープン ファイルを開く ファイルを閉じる ファイルオープンのモード 標準入出力について ファイルの読み込み テキストファイルの読込 空白区切りファイルの読込 CSVファイルの読込 バイナリファイルの読込 ファイルの書き込み テキストファイルの書込 CSVファイルの書込 バイナリファイルの書込 可変個引数をファイルへ書込 ファイル関連 ファイル位置の取得 ファイル位置の設定 ファイル位置の取得2 ファイル位置の設定2 ファイル位置を先頭に戻す フ

    gymno
    gymno 2009/08/25
    マイナーだが便利な機能がよくまとまってる
  • Bjarne Stroustrup、Conceptと未来を語る

    センスとフィーリングで大胆な意訳を試みた。Danny Kalevがやたらとウザい奴に成り下がっていたり、Bjarne Stroustrupがコミカルなまでにジジイ臭いのは仕様。ただ、DKの言い回しは、ちょっとやり過ぎたかも知れない。実際原文を読んでいると、これぐらいムカつく言い回しなのだが。 Page 1: Concepts: Disappointment Without Defeat Danny Kalev 今回のconceptの失敗についてどう受け止めてますか。今回の事件をどう思いますか。これは、あるいは、将来的に新機能を提案する妨げになると思いますか。 Bjarne Stroustrup C++0xにconceptを入れないと決定したことについてかね。ワシとしては、conceptが失敗したとは思っておらんよ。今回の問題は、個人的にはユーザビリティの問題だと思っておるんだが、まあ、せい

  • Big Sky :: C++で軽量Webサーバ書いた。

    書いたといっても結構前からあったのですが、いらん所を削ぎ落として軽量Webサーバとして仕立て上げました。 軽量とは言えど、CGIを使って結構色々動きます。 例えば、ソースアーカイブを解凍したらCGIがあって、apacheから見える場所にコピーして...とか面倒くさかったりしますよね。 おれは今すぐWebサーバを起動したいんだ!そして今いるディレクトリのファイルをWebサーバからサーブしたいんだー! って事ないですか?blogソフトウェアをダウンロードして今すぐ試したいけど、apacheインストールされてなかった...とか悲しすぎます。 今回紹介する"tinytinyhttpd"(tthttpd)はそんな、小さい様で大きな問題を解決出来るかもしれないソフトウェアです。 mattn's tinytinyhttpd at master - GitHub tiny tiny httpd http:

    Big Sky :: C++で軽量Webサーバ書いた。
    gymno
    gymno 2009/08/10
  • C++: インテル スレッディング・ビルディング・ブロックを使って簡単に並列化

    最近はマルチコアCPUが当たり前になってきて、それを使って簡単に並列処理プログラミングができないか、頭を悩ませていたのだが、インテルのスレッディング・ビルディング・ブロック(Threading Building Blocks, TBB)が非常に良くできた技術であることを知った。 これまではMPIやら、OpenMPやら、CUDAやらをちょろちょろ手を出しつつも、どれも正直面倒だった。趣味のプログラミングではそれでも楽しいからいいのだけど、単にある処理を並列化で高速にしたいだけの場合、並列処理に関わる面倒な手続きなどは極力省きたい。また、どうしても泥臭いやり方になることが多い。例えば、Cでは簡単に書けるのだけど、C++の機能を使った処理がやりづらかったりね。 そこで、TBBが登場する。マルチコアやメニーコアプラットフォーム上での利用となるが、最近では一般のノートPCでさえマルチコアCPUが使わ

    C++: インテル スレッディング・ビルディング・ブロックを使って簡単に並列化
  • pythonとc++のインターフェイスの比較 swig boost.python ctypes - niitsuma blog

    pythonc++のインターフェイスを作る方法には boost.pythonを使う方法 swigを使う方法 python.ctypesを使う方法 f2py (Fortranを使うためのInterface)を使う方法 pyreを使う方法 直接Cのインターフェイスを作る方法 があるようだ。 http://www.scipy.org/Cookbook のUsing NumPy With Other Languages のセクションにさらに詳しい解説がある。 ここでは特に配列(numpyの行列)をc++と連携して使う方法に注目していくつかの方法を比較する。numpyは数値計算や行列演算を行うpythonのパッケージでnumarrayの後継にあたる。numpyはnumarayと違って行列が配列の先頭ポインター(double *array)を渡すだけでc++とやりとりができる。そのためc++との連携

    pythonとc++のインターフェイスの比較 swig boost.python ctypes - niitsuma blog
  • 軽量データクラスタリングツールbayon - mixi engineer blog

    逆転検事を先日クリアして、久しぶりに逆転裁判1〜3をやり直そうか迷い中のfujisawaです。シンプルなデータクラスタリングツールを作成しましたので、そのご紹介をさせていただきます。 クラスタリングとは クラスタリングとは、対象のデータ集合中で似ているもの同士をまとめて、いくつかのグループにデータ集合を分割することです。データマイニングや統計分析などでよく利用され、データ集合の傾向を調べたいときなどに役に立ちます。 例えば下図の例ですと、当初はデータがゴチャゴチャと混ざっていてよく分からなかったのですが、クラスタリングすることで、実際は3つのグループのデータのみから構成されていることが分かります。 様々なクラスタリング手法がこれまでに提案されていますが、有名なところではK-means法などが挙げられます。ここでは詳細については触れませんが、クラスタリングについてより詳しく知りたい方は以下の

    軽量データクラスタリングツールbayon - mixi engineer blog