タグ

関連タグで絞り込む (156)

タグの絞り込みを解除

c++とcに関するtyruのブックマーク (300)

  • Ruby 拡張モジュール入門 / SlideShare

    2. おしながき おしながき 拡張モジュールとは なにもしない拡張モジュール hello.so 拡張モジュールを作る前に まとめ 2007-11-17 Ruby 勉強会@札幌 #6 1 4. 拡張モジュールって何? 拡張モジュールって何? 拡張モジュールとは・・・ Ruby では実現不可能だけど,C ⾔語なら実現可 能な事柄を,C ⾔語で実装して Ruby から使えるよ うにするための共有ライブラリ Ruby で実装すると遅いけど,C ⾔語なら実⽤的な 実⾏速度を実現できるようなアルゴリズムなどを,C ⾔語で実装して Ruby から使えるようにするための 共有ライブラリ アセンブリ⾔語も使えるよ\(^o^)/ 2007-11-17 Ruby 勉強会@札幌 #6 3 5. 拡張モジュールの例 拡張モジュールの例 標準添付 独⽴配布 Ruby/OpenSSL Ruby/GNOME2 Ruby/

    Ruby 拡張モジュール入門 / SlideShare
    tyru
    tyru 2009/07/05
  • Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!

    kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl

    Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!
  • 出雲/Release/e

    Release Programs 以下,私の作ったプログラムを公開します.ほとんど全て,UNIX 上のソフト です.これらのプログラムはフリーソフトであり,全く無保証です. 再配布・利用は自由に行なっても構いませんが、いかなるトラブルがおきようと、 私は一切の責任を取りません。 バグ,意見,質問,などございましたら,私(iz@onicos.co.jp) 宛までお願いします.また、こんなの作って欲しいっていう 要望があれば、相談にのります。暇とやる気さえ起これば作りましょう。 最近更新したプログラム: zlib.js (随時更新中...) httpget (Version 5.2.2, 2000 10/1) html-edit-mode (Version 1.5.0, 2002 9/13) pg-view-table.el (Version 1.1.2, 2002 8/3) mi-arcfs

    tyru
    tyru 2009/06/30
    PS2用ゲーム「ICO」でGPL違反しながらも使われていたというlibarcとかその他色々 面白い
  • 標準Cライブラリの実装

    しばらく忙しくて放置していますが、また春頃になれば、それなりに注力できる可能性があります。もっとも、そのころになれば、JSPカーネルではなく、ASPカーネルに対応することを考えるような気もしますが...。 さて、このたび、このブログで公開しているソースコードのライセンスに関して質問を受けました。このブログは、あくまでも実装レポートで、私が実装中に考えたことや、判断に迷ったことなどを交えながら、記録を残して行けたらと思って始めたものです。現在公開されている内容も、ざっと動作は見ていますが、いろいろバグも指摘されていますし、私自身も過去の記事のバグを見つけています。 そんな感じで、まだ現状では非常に完成度は低いと考えてください。それでもよければ、あくまでも自己責任の下で、自由に利用していただいてかまいません。ただし、(合法・非合法にかかわらず)反社会的または反人道的な用途への利用だけはご遠慮く

  • Software Installation Log

    Contents SCSI card setup CD-R(W)ドライブを使用できるようにする 8hz-mp3mp3 encoder HTK … Hidden Markov Model Toolkit a2ps.pl …日語を含むテキストの印刷 archie …ソースファイルを探すための道具 cdda2wav … CD から .wav を生成 cdrdao … CD を disc-at-once mode で書き込む chasen … 形態素解析 chawan … chasen に読み付与 gnuplot …作図(など) 午後のこーだ … mp3 encoder julius … 日語ディクテーション timidity …ソフトウェア midi エンコーダ psutils … postscript の変換色々 samba … UNIX から Windows (あるいはその逆)ファ

    tyru
    tyru 2009/06/24
    新しめのgccで「error: initializer element is not constant」というエラーメッセージが出た時の対処法。こっちは初期化時に代入せずmainのé–
  • Supplement for patch (compile error)

    症  状(コンパイルエラー) 最近のCコンパイラ(gcc)でコンパイルする場合, glib のバージョンによっては, src/pad2ps/pad2ps.c のコンパイル時に, error: initializer element is not constant といった,エラーが生じます。 原  因 出力ファイルのポインタ変数 fp の初期化, FILE *fp = stdout; の部分が該当します。 標準出力 stdout が構造体のためです。 エラーを回避するために,この初期化をしないでコンパイルすると, pad2ps 関係のコマンド実行時に出力ファイル名を指定しないと, Segmentation fault (core dumped) となる不具合が生じます。 対処パッチ ( src/pad2ps/pad2ps.c ) #if defined(__linux__)

    tyru
    tyru 2009/06/24
    新しめのgccで「error: initializer element is not constant」というエラーメッセージが出た時の対処法
  • bookshelf.jp

    This domain may be for sale!

    tyru
    tyru 2009/06/24
    いろいろ
  • インテル Parallel Studioを使って 並列化プログラミングを試してみた

    CPUのマルチコア化に伴い、開発者にも「並列プログラミング」が必要とされる時代になってきています。5月下旬にインテルがリリースした「インテル Parallel Studio」を利用すると、使い慣れたVisual Studioの開発環境で、並列化プログラミングの様々なサポートを得ることができます。稿では、その概要やインストール方法、テスト結果などについて解説します。 はじめに IT業界はよく日進月歩だと言われます。確かに我々開発者を取り巻く環境は日々変化し、新しいテクノロジーが毎月のように発表されています。しかし、ある程度経験を積んだ開発者は、そのような変化は表面上のものだと考えます。 プログラミング言語は進化し、どんどん新しい機能が追加されてゆき、それに伴い新しい開発環境が登場します。ですが、冷静に考えてみればそう慌てることはありません。昨今騒がれている言語の新しい機能も大半が古くからあ

    インテル Parallel Studioを使って 並列化プログラミングを試してみた
  • C++ Labyrinth

    C++ ラビリンス C++ は、数多くの謎、咒文、罠、そして宝箱が仕掛けられた、壮大な迷宮である。 その C++ 迷宮をさまよう同志たちへ、ささやかながら、いくつかの道標を お贈りしたい。 もちろん、私自身、C++ 迷宮の一彷徨者に過ぎない。誤りや不備な点があれば、 遠慮なく指摘していただきたい。 キャスト (2001-03-01) dereference (2001-03-01) マルチスレッドにおける singleton (2001-03-17) 契約による設計 (2001-03-25) 戻値とコンストラクタの妖しい関係 (2001-04-09) マルチスレッドにおける singleton (その2) (2001-04-10) 自己言及的なテンプレート (2001-06-13) オーバーロードは継承できない (2001-06-16) GCC 3.0 のインストール (2001-07-0

    tyru
    tyru 2009/06/21
    Let's boost - Boost.Spiritより
  • c++スレより 「クラスの内側で定義したクラステンプレートを特殊化する」 - matsutakegohan1の日記

    何の気なくのぞいてみたら、2chって宝の山なのですね。 過去スレとかにも面白い書き込みがたくさんあり、幾つかがdatに行く前にこうやって張れたらと思います。 91 名前: デフォルトの名無しさん 投稿日: 2007/09/30(日) 20:19:13 クラスの内側で定義したクラステンプレートを特殊化する、 class X { template<typename T> class Y {}; template<> class Y<int> {}; }; のようなコードは、VC++(2003/2005)ではコンパイルできますが、g++3/4では error: explicit specialization in non-namespace scope ‘class X’ というエラー になってしまいます。 YをXの中ではなく、名前空間スコープで template<> class X::Y {}

    c++スレより 「クラスの内側で定義したクラステンプレートを特殊化する」 - matsutakegohan1の日記
    tyru
    tyru 2009/06/21
    「規格ではネストされたクラス内での明示的特殊化は禁止されているけど 部分特殊化はOK」らしい
  • Return value and constructor

    戻値とコンストラクタの妖しい関係 C++ では、関数の引数として、ユーザが定義したクラスのオブジェクトが 必要な場合は、たいてい、リファレンスを使う。 そうしないと、引数用に一時オブジェクトが生成され、 オブェクトのコピーが発生するからである。リファレンスを使えば、 一般的にはオブジェクトのアドレスが渡されるだけなので、オブジェクト 全体をコピーするよりはるかに効率的だ。 関数引数はリファレンスで渡すというのは、まあ、常識の部類であろう。 では、関数からの戻値としてオブジェクトを返す必要がある場合はどうだろうか。 オブジェクトが保持している属性値を返すようなときは、 const 修飾子を付けた上で、リファレンスで返すのが普通だろう。 その属性値を含むオブジェクト自身を呼び出し側が保持しているので、 アドレスだけ返しても特に問題はないからだ。 では、新しくオブジェクトを生成して返さなければな

    tyru
    tyru 2009/06/20
    戻り値最適化
  • 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

    tyru
    tyru 2009/06/20
    はてなキーワードより「フリーのSTL。標準STLより読みやすく、優れたマルチスレッドやデバッグ機能を備えている
  • C++ Labyrinth

    マルチスレッドにおける singleton singleton パターンというのは、あるクラスのインスタンスが、プログラム全体の中で、 ただ一つだけ存在するように制限したいというような場合に用いられる。たとえば、 MFC を使った Windows プログラミングでは、しばしば、 といったコードにお目にかかるが、このやり方では、他の誰かが、CFooApp の 別のインスタンスを作ることを明示的に禁止することはできない。 では、どうするか。すぐに思いつくのは、インスタンスの生成をただ一つの 関数だけに許可し、数の管理は、その関数に任せる、というやり方である。 インスタンスの生成をただ一つの関数だけに制限するには、クラスの コンストラクタを private にした上で、その関数を、クラス内の静的メンバ関数に するか、あるは、クラスのフレンド関数にすればよい。 class Foo { public

  • iostreamの拡張

    Last update 1999/09/22 iostreamの拡張 (C)平山直之 無断転載は禁止、リンクはフリー 誤字脱字の指摘は歓迎 iostreamの拡張について 例によって唐突ですが、iostreamの拡張について書いてみたいと思います。ここでいう「拡張」とは、自分でcinとかcoutみたいなものを作ろう、ということです。 「こんなもん一番最初に教えんなや」と比較的評判の悪いiostreamですが、 演算子オーバーロードがいわば「御法度」な使い方をされている メソッドの命名法がやたら変 などのように表面的に美しくないのが悪評の原因で、その辺に目をつぶれば実はそれなりによくできたシステムだったりします。 拡張方法も一度覚えると結構便利ですぜ。 iostream拡張の基礎知識 iostream、というと、そのインターフェイス(Java的な意味じゃなくて)であるところのstd::cin

    tyru
    tyru 2009/06/20
    WinMainなプログラムからでもデバッグ用コンソールにiostreamっぽく出力, zlibによるフィルタ, etc.
  • 仮想基本クラス

    並列的継承の問題点 C++の継承が、いかに柔軟なものかは前回で理解していただけたと思います ですが、継承によっては非常に難しい問題が発生します 継承が複雑になると、同じクラスを2度継承するという事態が発生します 基クラス || 派生クラス1派生クラス2 || 派生クラス3 図を見てわかるように、派生クラス3が基クラスを2度継承しています 派生クラス1と派生クラス2が、基クラスを継承しているためです #include<iostream> using namespace std; class Base { public: char *name; }; class Derived1: public Base { public: int age; }; class Derived2 : public Base { public: char *sex; }; class Derived3 :

    tyru
    tyru 2009/06/20
    virtual public
  • C++ で virtual public - higepon blog

    virtual public な継承。初めて使った。 class BinaryInputPort : virtual public BinaryPort class BinaryOutputPort : virtual public BinaryPort class BinaryInputOutputPort : public BinaryInputPort, public BinaryOutputPort 合ってる?それにしても見事な菱形継承だ(良いのか?)

    C++ で virtual public - higepon blog
    tyru
    tyru 2009/06/20
    virtual public。仮想基本クラスとか言うらしい。
  • undefined reference to Hoge::meso() - CLOTHO

    なるエラーが include しているから見えてるはずなのにでてくる. 原因 inline 関数を .h で宣言,.cpp で定義という風にしてたのが原因?inline 書き忘れてただけ?ヘッダーファイル .h 内で inline で 定義したら消えた. .h で非 inline で定義したやつはエラーになる.定義がダブルとか言われて.

    undefined reference to Hoge::meso() - CLOTHO
    tyru
    tyru 2009/06/20
    「inline関数はヘッダで定義」っていうの忘れてた
  • デフォルト引数

    引数のデフォルト値 関数に渡す引数で、C++ではデフォルトの値を持たせることができます すなわち指定されなかったときに使う値を持たせるということです これは、オーバーロードと関連した機能の一つです これを利用することで、引数が省略可能な関数を作成できます 引数のデフォルト値を与えるには、関数のプロトタイプ、または定義のいずれかで 次のように、仮引数に目的とするデフォルト値を与えます function(type arg = value); 関数 function の type 型の仮引数 arg の初期値が value に指定されます この関数を引数無しで呼び出した場合は、第一引数に value が渡されたものとします #include<iostream> using namespace std; void Kitty(char *str = "Kitty on your lap\n") {

    tyru
    tyru 2009/06/20
    デフォルト引数を指定するのは関数のプロトタイプか定義の「いずれか」のみで行う
  • boost::shared_ptr と NULL — Soft x-ray beamline at SPring-8.

    boost::shared_ptr ライブラリは非常に便利で、プログラムスタイルをまったく変えてしまいます。礼を挙げながら便利な使い方を説明しましょう。 オブジェクト指向の便利な点のひとつには、「仮想関数」を呼び出す点になります。しかし、生のポインタを扱うと、メモリリークがおきやすくなります。 たとえば、 animal *p1, *p2; p1=new dog("dog"); p1=new cat("cat");//ここで、メモリリーク! p2=p1; p1->bark(); p2->bark(); delete p1; delete p2; となってしまいます。そこで、 boost::shared_ptr<animal> p1, p2; p1=boost::shared_ptr<animal>(new dog("dog")); p1=boost::shared_ptr<anim

    tyru
    tyru 2009/06/20
    boost::shared_ptrでのNULLかどうかの判定
  • If I use explicit constructor, do I need to put the keyword in both .h and .cpp files?

    tyru
    tyru 2009/06/20
    explicitはヘッダだけに付ければいいらしい