タグ

c++に関するclavierのブックマーク (100)

  • RVO (Return Value Optimization)についてのメモ - nokunoの日記

    Efficient C++を呼んでいたら,RVO (Return Value Optimization)が適用されるコードと適用されないコードの例が紹介されていました.RVOというのは,C++で関数がオブジェクトを返す場合に,一時オブジェクトの生成とコピーを抑制するコンパイラの機能です.非常に興味深いですね.Amazon.co.jp: Efficient C++パフォーマンスプログラミングテクニック: ダブ ブルカ, デビット メイヒュ, 浜田 光之, Dov Bulka, David Mayhew, 浜田 真理: RVOが適用されないコード Complex operator+ (const Complex& a, const Complex& b) { Complex retVal; retVal.real = a.real + b.real; retVal.imag = a.ima

    clavier
    clavier 2011/10/20
  • コールバック関数が呼ばれたかのテスト - Faith and Brave - C++で遊ぼう

    いつでも使える方法ではないですが、コールバック関数で値を書き換え、書き換わったかどうかを判定する、というのがよく使う方法です。 以下は、Boost.Asioのio_serviceを使用した例。 #include <boost/detail/lightweight_test.hpp> #include <boost/asio.hpp> #include <boost/bind.hpp> namespace asio = boost::asio; void f(int& x) { x = 2; // 2. 書き換える } int main() { int x = 1; // 1. 元々の値 asio::io_service io_service; io_service.post(boost::bind(f, boost::ref(x))); io_service.run(); // 3. コー

    コールバック関数が呼ばれたかのテスト - Faith and Brave - C++で遊ぼう
  • C++を知らないゲームプログラマ達 - Ideals and Reality

    マルチプラットホームライブラリを作ってみた。 ※リンク先pdf 有名なSEGAの著者、平山さんによる今年のCEDECでの講演内容である。 ゲームプログラマになる前に覚えておきたい技術 作者: 平山尚出版社/メーカー: 秀和システム発売日: 2008/11/14メディア: 単行購入: 112人 クリック: 3,473回この商品を含むブログ (193件) を見る 内容的には十分読み応えのあるのだが、一部釈然としないところもある。 主に4.9章の「標準ライブラリや言語機能について」というところから。 何故標準が嫌なのか ゲームプログラマはなぜかC++標準ライブラリを使わない。 いや、使おうとする人もいるが何かと理由をつけて使わない。 その理由が大体困ったような内容が多い。 リンク先でも書かれているが、vectorにはpush_back()やerase()がある。 そしてこれは安全性と性能の両

    C++を知らないゲームプログラマ達 - Ideals and Reality
  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • C言語の代表的なウェブリソース10選 - YAMDAS現更新履歴

    Top 10 C Language resources that will turn you into a better programmer - C and C++ Programming Resources 今更 C 言語かと言われそうだが、Linux カーネルだって、我々が利用している LL 言語の多くだってこの言語で書かれているのである。ワタシ自身は未だどの言語よりCを愛している。 以下に C 言語に関してウェブに公開されている代表的なリソースを挙げていく。さすがに更新が長らく止まっているものが多いが、それでも有用な情報源には違いない。ネタ元は Hacker News。 C Programming Notes Programming in C - UNIX System Calls and Subroutines using C. C Lesson by Chris Sawtell

    C言語の代表的なウェブリソース10選 - YAMDAS現更新履歴
  • wat-array : wavelet木を利用した高速配列処理ライブラリ - Preferred Networks Research & Development

    こんにちは岡野原です。もう年末になりましたが、私の今年はこれからです。 wat-arrayというC++ライブラリを公開しました。 google code:wat-array wat-arrayはフリーソフトウェアであり、修正BSDライセンスに基づいて利用できます. wat-arrayはwavelet木と呼ばれるデータ構造を利用することにより、配列上の様々な処理を効率的に行うことができるC++ライブラリです。 例えば、 – 任意の連続した範囲内にある最大値 /最小値 / k番目に大きい値, またそれらの出現位置、頻度 – 任意の連続した範囲内にある指定した文字cの出現回数、c未満/より大きい文字の出現回数 – 任意の文字のi番目の出現位置 といったものを求めることが全て範囲長、入力長に対して定数時間で行うことができます。 例えば長さ10億、値の範囲が0から1000万であるような配列A中のA[

    wat-array : wavelet木を利用した高速配列処理ライブラリ - Preferred Networks Research & Development
  • Minise: MIni Search Engine

    ウェブサイトは現在工事中です.ソースコード公開は10/24頃を予定しています. 概要 Miniseは最小限必要な機能をサポートした非常にコンパクトな検索エンジンです.検索対象の文章に対し索引を構築し,検索クエリに対する全文検索を行うことができます. 索引の種類として逐次検索,転置ファイル,N-gram,接尾辞配列をサポートしています.また検索結果の取得については定義済みのスコア以外にユーザー定義のスコアを用いたランキングを行うことができます. 主な利用用途として、小〜中規模の検索向けまた,教育用,研究用目的に使われることを想定されております. ダウンロード Miniseはフリーソフトウェアです.修正BSDライセンスに従ってソフトウェアを使用,再配布することができます. 2009-10-24: Minise 0.01 リリース予定 2009-10-21: ホームページ公開 使い方

  • 類似画像検索システムを作ろう - 人工知能に関する断創録

    C++版のOpenCVを使ってカラーヒストグラムを用いた類似画像検索を実験してみました。バッチ処理などのスクリプトはPythonを使ってますが、PerlでもRubyでも似たような感じでできます。 指定した画像と類似した画像を検索するシステムは類似画像検索システムと言います。GoogleYahoo!のイメージ検索は、クエリにキーワードを入れてキーワードに関連した画像を検索しますが、類似画像検索ではクエリに画像を与えるのが特徴的です。この分野は、Content-Based Image Retrieval (CBIR)と呼ばれており、最新のサーベイ論文(Datta,2008)を読むと1990年代前半とけっこう昔から研究されてます。 最新の手法では、色、形状、テクスチャ、特徴点などさまざまな特徴量を用いて類似度を判定するそうですが、今回は、もっとも簡単な「色」を用いた類似画像検索を実験してみます

    類似画像検索システムを作ろう - 人工知能に関する断創録
  • 【プログラミング】テトリスを1時間強で作ってみた【実況解説】 ‐ ニコニコ動画(原宿)

    【プログラミング】テトリスを1時間強で作ってみた【実況解説】 [技術・工作] ■今回は、Win32API + C言語でテトリスを作る様子を実況してみました。■徐々にテトリスが出来ていく...

    【プログラミング】テトリスを1時間強で作ってみた【実況解説】 ‐ ニコニコ動画(原宿)
  • 「足あとライブ!」に関するテクニカル・メモを書いてみた

    「足あとライブ!」や「ホットエントリーライブ!」を作っているうちに、CometサーバーとJavascriptをどう組み合わせれば良いか、なのどノウハウが色々とたまってきたので、一度テクニカル・メモの形にまとめてみることにした。ちょうど英語のブログの更新が止まっていて、なんとかせねばと思っていたので、そちらのエントリーとして書かせていただいた。 Live Page-View Counter, Comet server and JSON-push ソースコードすべてを公開しているわけではないが、C++で直接ソケットを操作するコードを書くことができて(つまりCometサーバーを自作することができて)、サーバー側のスクリプト(言語は問わない)とJavascriptをある程度書ける人であれば、このペーパーに書かれた情報を元に自分でも同じようなサービスを作ることが可能になるように書いたつもりである。も

  • The "Double-Checked Locking is Broken" Declaration

    The "Double-Checked Locking is Broken" Declaration Signed by: David Bacon (IBM Research) Joshua Bloch (Javasoft), Jeff Bogda, Cliff Click (Hotspot JVM project), Paul Haahr, Doug Lea, Tom May, Jan-Willem Maessen, Jeremy Manson, John D. Mitchell (jGuru) Kelvin Nilsen, Bill Pugh, Emin Gun Sirer Double-Checked Locking is widely cited and used as an efficient method for implementing lazy initialization

  • ひげぽん OSとか作っちゃうかMona- - C++のリファクタリングツール Xrefactory

    もはや技術者の必読書*1となりつつある「リファクタリング―プログラムの体質改善テクニック」ですが、 その作者であるマーチンファウラー氏のMartin Fowler's Bliki in Japaneseを読んでいてふと思った。 C++のリファクタリングブラウザ(リファクタリングツール)ってないのかなと。 全然詳しくないんですがVisual Studioにはリファクタリング機能がついているそうですが、僕は普段のコードがほとんどEmacsとg++なので探してみました。 C++は仕様がとても大きくて、他の言語と比べてリファクタリングブラウザを作るのがとても大変らしくなかなか見つかりませんでしたが、Refactoring Toolsで紹介されていたのがXrefactoryです。 Xrefactoryはシェアウェアで8日間試用出来るので試してみました。 インストール 1. http://xref-t

    ひげぽん OSとか作っちゃうかMona- - C++のリファクタリングツール Xrefactory
  • smart_ptrはスマートなポインタか?(1) - やねうらおブログ(移転しました)

    id:okzkさんからSoftware Design 7月号のひなた先生で気になったところについて指摘をいただいた。 ■ smart_ptrとは? まず読者のために前説。ここで出てくるsmart_ptrというのは、yaneSDK3rdに実装されている、smart_ptrのことである。(→gggの24章) ■ 指摘1 つまりはそのsmart_ptrにポインタを渡す時に「アップキャストされていない来の型」の ポインタとして渡す必要があるぢゃないかと。は正しいです。私のsmart_ptrを用いる場合、newはsmart_ptrのコンストラクタ以外のところでは書かないというコーディング方針を守る必要があります。(循環参照の問題があるのでboost::weak_ptrに相当するものがあるべきだとは思います。) boostを使う場合でも、boost::shared_ptr , boost::weak

    smart_ptrはスマートなポインタか?(1) - やねうらおブログ(移転しました)
    clavier
    clavier 2006/06/23
    ポインタ
  • いけてないぞ、VCのSTL!

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。

    clavier
    clavier 2006/06/19
  • Generic Image Library (Boost candidate) - Cry's Blog

    うひょっ!! (See also: http://opensource.adobe.com/gil/index.html) 前からそーだけれど,ここ最近は特に Adobe が C++ による実アプリよりの汎用ライブラリ設計・開発・運用・公開を企業レベルで行っている例の筆頭格を担ってるイメージが確実に出てきたように思うにゃー.この前連邦破産法適用しちゃった SGI (初期の STL 実装でおなじみ)からも色々人材が Adobe に流れたみたいだし,そこら辺とも関係あるのかも. C++ の1つの大きな利点は,こういった企業レベルでの設計・実運用のフィードバックがかかる(そしてそれを下支えするだけの popularity がある)ことだと思うから,どんどんこういうのが出てきて欲しいにゃー. Boost のコミュニティにさらせば,特に設計の面で非常に高レベルな議論とフィードバックが享受できるのでラ

    Generic Image Library (Boost candidate) - Cry's Blog
    clavier
    clavier 2006/06/19
  • STLport: Welcome!

    Welcome to STLport Consulting! The company was started back in 1997 by a small group of developers gathered around STLport Standard Library Project. Since then STLport has been accepted by the technical community as industry standard for multiplatform development. STLport library can be downloaded here at no charge. Complete first-hand product support is being rendered by the original developer cr

    clavier
    clavier 2006/06/19
  • http://cycode.dnsalias.net/~menisys/tips/cbuilder/stl-professor.html

  • OBB vs AABB - Radium Software Development

    iPhoneの一般修理店は予約なしでも来店できる? 基的には飛び込みで修理に行ってもOK iPhoneを置いていたソファにうっかりと腰かけてしまい、パネルを割ってしまった、こんな時はスマホの一般修理店へ行きましょう。画面割れは、スマホやタブレットの故障原因として非常に多いものです。予約なしで突然お店に行っても平気かしらと、不安に思う方々もいらっしゃるかもしれません。結論としては特に問題はなく、予約なしで訪問しても画面割れの修理はお願いできます。 ただし他のサービス業のお店同様、予約なしの場合、お店が混雑していると順番待ちをしなければいけないです。特に繁盛しているスマホ修理のお店だと、行列が店内で出来ており、予約なしだと、自分の順番が巡ってくるまで長時間待たされる可能性があります。平日の朝、昼なら利用客が少ない場合が多く、飛び込みでも比較スムーズに修理が頼めます。 予約は入れた方が時短に、

  • Perl Swig におけるSTLのvector/string typemap - higepon blog

    Google Cacheからお宝発見。http://72.14.207.104/search?q=cache:-HxRbJf6tigJ:mailman.cs.uchicago.edu/pipermail/swig/2002-August/005367.html+typemap+perl+swig+array+char&hl=ja&gl=jp&ct=clnk&cd=4 PerlのSwigとC++のSTL(vector, string)のtypemap。 追記: Perl側から arrayリファレンスを渡して、vector* でうけとるのはできた。 同じく、vectorをreturnして、arrayリファレンスで受け取るのもできた。ヽ(´ー`)ノ ただし vector_tempがないとか言われるので適当にごにょる。 スマートな解決方法をご存知の方ぜひつっこみをお願いします。 いつなくなるか分か

    Perl Swig におけるSTLのvector/string typemap - higepon blog
  • 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