タグ

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

タグの絞り込みを解除

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

  • has incomplete type

    「has incomplete type」という検索フレーズは、ここのところ毎日のように目にします。おそらくは、GCCを使用していて、コンパイルエラーまたは警告が出たために、その内容を調べたかったのでしょうが、私が運営している姉妹サイト群の中で、この検索フレーズに該当する部分では全く別の内容を書いています。 というわけで、今回はこの「has incomplete type」を取り上げることにします。"incomplete type"というのは「不完全型」の意味で、次に挙げる3種類のものがあります。 struct A;のようにタグ名だけを宣言した構造体、共用体、列挙体(およびC++ではクラス)要素数を指定しない配列型void型これら不完全型のポインタ(C++では参照も)を扱うことは可能ですが、不完全型のオブジェクトを宣言したり、不完全型のオブジェクトを要求するような記述を行うことはできません

    has incomplete type
  • stack

    stackとは スタックは末尾(または先頭)に限って要素の追加削除を行うことのできるデータ構造です。 末尾からしか要素を取り出せないので、 必然的に「後に入れたものから先に取り出さなくてなはならない」ということになります。 そのため、スタックはLIFO(last-in first-out)とも呼ばれます。 スタックに新しい要素を挿入することをpush、要素を取り出すことをpopといいます。 スタックは末尾への要素の挿入・削除ができるデータ構造なら何を使っても実装することができます。 普通は配列や単方向連結リストを用いて実装します。 STLにおけるstack STLのstackは何を使って実装するかをvector,deque,listの中から選べます。 スタックの要素の型をTとすると、

    stack
    tyru
    tyru 2009/06/19
    「STLのstackは何を使って実装するかをvector,deque,listの中から選べます。他にも、push_back, pop_back, back, sizeなどのメソッドを適当に定義ã
  • http://www.cpptalk.net/lint-vt8626.html

    tyru
    tyru 2009/06/17
    #ifndef lint char copyright[] = ...#endifについて。『この(プリプロセスの)趣旨は実行ファイルに含まれるということだ。よって誰かがã
  • https://faithandbrave.hateblo.jp/entry/20080207/1202383891

  • カテゴリ:More C++ Idioms - Wikibooks

    カテゴリ: “More C++ Idioms” このカテゴリには 50 ページが含まれており、そのうち以下の 50 ページを表示しています。

    tyru
    tyru 2009/06/17
    C++のイディオム pimplイディオムとかCopy-on-writeとかそういうやつ 日本語版
  • Category:More C++ Idioms - Wikibooks, collection of open-content textbooks

    tyru
    tyru 2009/06/17
    C++のイディオム pimplイディオムとかCopy-on-writeとかそういうやつ
  • C言語 Super Technique 講座

    このページは、C言語の中級テクニックを中心に解説する。長らくプログラマをしていると、C言語の面白い使い方例が蓄積している。これらを一挙公開するために、このページを作ったのである。しかし、単にCに留まらず、他の言語の面白い特徴なども紹介していく。 内容的にはかなりヘヴィである。当然のことながら、「ポインタ虎の巻」程度の内容はちゃんと使いこなせることを前提とする。意外な技、落し穴、派手なテクニックなど、内容満載だが、ちゃんとデータ構造とアルゴリズムなども説明できれば良いと思う。(まあ、ぼちぼちやってきいます...) 以下の目次には手引きのために、評価がつけてある。凡例として示す。 レベル その解説で記載されている内容のレベル 有用度 その内容が実際に役に立つものかどうか 邪悪度 その内容が薦める方法が、一般的なコーディング規約の中で「邪悪」とされがちなものであるか否か。関数ポインタの活用(濫用

    tyru
    tyru 2009/06/14
    おもしろい
  • /*NOTREACHED */の効果を知らなかった件 - higepon blog

    がある。だから、コメントのかたちで /* NOTREACHED */ と書いてやると、コンパイラはこのコメントを認識し、このコメントには制御が移らないことを理解する。だからlongjmp 呼び出しをするユーザ関数の呼び出しの後には、このコメントを入れておくべきであるし、また、同様な戻らない関数 exec() などにもこれは有用なわけである。 noreturnな attributeとかなら知っていたけど、これは知らなかったな。 知らずに他のソースの真似して、それっぽく書いていたんだけど意味ねぇええ。 nobita% fxgm "cpp" "not reached" ./core/kernel/Mutex.cpp: /* not reached */ ./core/kernel/Mutex.cpp: /* not reached */ ./core/kernel/Mutex.cpp: /* n

    /*NOTREACHED */の効果を知らなかった件 - higepon blog
    tyru
    tyru 2009/06/13
  • C++0xの言語拡張まとめ(※随時更新) - Faith and Brave - C++で遊ぼう

    C++0xの概要はこちら ・Angle bracket テンプレートの連続した山カッコの問題の解決 ・初期化子リスト ユーザー定義のクラスで配列のような初期化構文を実装可能になる ・Uniform initialization コンストラクタの構文と初期化子リストの構文が一様になる ・デリゲーティング・コンストラクタ コンストラクタから他のコンストラクタを呼び出せる ・auto 型推論 ・記憶クラス指定子としての auto の削除 autoキーワードの意味が変更になるため、下位互換がなくなる ・decltype sizeofの型版 ・Template Aliases テンプレートを使用して型の別名を付けることができる。いわゆるtemplate typedef ・拡張sizeof 構造体/クラスのメンバをインスタンス化せずにsizeofすることが可能になる ・nullptr ヌルポインタを表

    C++0xの言語拡張まとめ(※随時更新) - Faith and Brave - C++で遊ぼう
  • pimplイディオムを語る — ありえるえりあ

    Recent entries 宣伝:C/C++のための開発補助ツール、GCCSenseをリリースしました matsuyama 2010-04-15 宣伝:Rubyのための開発補助ツール、RSenseをリリースしました matsuyama 2010-03-21 Emacsは死んだ matsuyama 2010-02-22 WebアプリケーションをiPhoneに対応させるための技術メモ matsuyama 2009-10-13 tokyo-emacs#x02の個人的レポート matsuyama 2009-09-07 Recent comments replica louis vuitton Anonymous User 2010-12-22 Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました Anonymous User 2010-12

    tyru
    tyru 2009/06/12
    pimplイディオãƒ
  • RAIIイディオムとPimplイディオム | 日々精進時々堕落

    一定期間更新がないため広告を表示しています

    RAIIイディオムとPimplイディオム | 日々精進時々堕落
    tyru
    tyru 2009/06/12
    C++のRAIIイディオムとPimplイディオãƒ
  • misagosan

    Twitter: @misagosan

    tyru
    tyru 2009/06/11
    templateとか
  • Boost サンプル集

    regex:正規表現を扱う(ラッパのgimite::reg_manager使用) #include <string> #include <iostream> #include <gimite/reg_manager.h> void main(){ gimite::reg_manager rm; std::string s= "<h1>Title</h1>Hello."; if (rm.search(s, "<h1>(.*?)</h1>")) // 検索 std::cout<<rm.str(1)<<std::endl; // 前方参照 rm.replace(s, "<h1>(.*?)</h1>", "<p>\\1</p>", "g"); // 置換 std::cout<<s<<std::endl; } 出力: Title <p>Title</p>Hello. ラッパなんぞ使わんわ!という方は

    tyru
    tyru 2009/06/10
    boostのサンプル集
  • いやなブログ: C のテンプレートでダックタイピング

    C++ のテンプレートでダックタイピング RubyPython などの動的な言語では、ダックタイピング (duck typing) というテクニックが多用されています。 ダックタイピングは、同じインタフェースさえ備えていれば型は何でも構わない、という考え方に基づく多態 (polymorphism) の手法です。アヒルのように見えて、アヒルのように鳴くなら、アヒルに違いない、というわけです。 そして、現在最も注目を浴びている言語である C++ でもテンプレートを用いるとダックタイピングを行えます。 ダックタイピングを使うと、継承関係を無視して多態的にオブジェクトのメソッドを呼び出せます。たとえば、次の Ruby のコードでは、func に Duck と Foo のどちらのオブジェクトを渡しても正常に動作します。これは Duck, Foo ともに、共通のインタフェースを持つ quack

    tyru
    tyru 2009/06/10
  • Technical Report 2(TR2) - Faith and Brave - C++で遊ぼう

    BoostからTR2に提案されているもの。 Boost.Optional(N1878) Boost.LexicalCast(N1973) Boost.Filesystem(N1975) Boost.Any(N1939) Boost.DynamicBitset(N2050) Boost.StringAlgorithm(N2059) Boost.Signals(N2086) Boost.Asio(N2175)

    Technical Report 2(TR2) - Faith and Brave - C++で遊ぼう
    tyru
    tyru 2009/06/09
    「BoostからTR2に提案されているもの」
  • 100行のCプログラムでWebチャットを実装する方法 - mixi engineer blog

    例の冷却ファンを修理してもらいに秋葉原に行ったのですが、最近の同人ゲームのクオリティはすごいなあと感心していたら、その二階はもっととんでもないことになってて、ひとつ大人になってしまったmikioです。今回は、Tokyo Cabinetのテンプレート直列化機能を駆使して、たった100行のCプログラムでWebチャットシステムを実装してみます。 古式ゆかしいWebチャットシステム 10年くらい前にCGIスクリプトでチャットシステムを作るのが流行していたのを覚えている方も多いと思います。チャットログは現在のようにデータベースサーバに転送して格納するのではなく、ローカルファイルシステム上のファイルにCSVやTSVなどのフォーマットで格納したり、同じくローカルのDBMファイルに格納するのが主流でした。2ちゃんねるの「datファイル」もそのようなデータファイルの一種と言えるでしょう。 その頃から、CGI

    100行のCプログラムでWebチャットを実装する方法 - mixi engineer blog
    tyru
    tyru 2009/06/09
  • 並列アプリケーションを作ってみよう | OSDN Magazine

    インテルのCoreシリーズCPUが登場して以来、マルチコアCPUは爆発的に普及している。現在では比較的低価格なCPUでも複数のコアを搭載するようになり、現在販売されているPCのほとんどはマルチコアに対応しているといっても過言ではない。しかし、まだマルチコアCPUの性能を生かす、並列処理を行っているアプリケーションは多くない。 並列処理は、一般には実装が難しい、という印象があるようだ。確かにスレッドを駆使して処理を並列化する場合、スレッドの管理やスレッド毎の連携など、考慮しなければならないことが増え面倒ではある。しかし、プログラムを並列化するための言語規格「OpenMP」や、C++用の並列化ライブラリ「Threading Building Blocks」といった並列化支援技術を利用することで、プログラムの並列化へのハードルは大幅に低くなる。また、インテルの開発製品「Parallel Stud

    並列アプリケーションを作ってみよう | OSDN Magazine
  • template

    演習で使った C++ のテンプレートに関する資料を中途半端ですが公開しときます。暇があってやる気が出たら追加や書き直しをするかも。 テンプレート一般 template の適当な説明 コンパイル時の計算 コンパイル時のコード生成 traits とは policy とは typename は何故必要か

    tyru
    tyru 2009/06/09
    templateについて
  • Geekなぺーじ : C++は中高生のセックスに似ている

    「Why C++ is like teenage sex」というネタがあるようです。 古さを多少感じますが結構笑えます。 色々な英語サイトで紹介されており、実際にどこがオリジナルなのかは発見できませんでした。 検索すると微妙に内容が異なる物もありますが、内容は以下のような感じです。 興味がある方は、「Why C++ is like teenage sex」という検索キーワードで検索してみて下さい。 C++は中高生のセックスに似ている。何故ならば。。。 みんな、そればっかり考えている みんな、その話ばかりしている みんな、他の人もやっていると考えている 実際にやっている奴はあまりいない やっている少数の人々は: 下手 次はもうちょっと上手になってるだろう 安全にやってるわけじゃない 成功体験を言いふらしてるけど、実際にやったことがある奴は少ない 原文 C++ is like teenage

    tyru
    tyru 2009/06/04
  • メタ関数::テンプレート・メタプログラミング

    2006-06-30 昨日予告したように、今回からテンプレート・メタプログラミングに関する話題を取り上げていきたいと思います。C++のテンプレートは、元々は型 T のコンテナを実装する程度の用途しか想定されていなかったのでしょうが、STLやBoost C++ Librariesなどを見ても分かるように、非常に広い用途に利用されています。 今回は、テンプレート・メタプログラミングの最も基礎にあたる「メタ関数」を取り上げてみたいと思います。(メタではない)普通の関数は、引数として値を受け取り、返却値として値を返します。そして、関数として定義された内容は、実行時に解決されます。 しかし、メタ関数では、引数として型または定数値を受け取り、返却値として型または定数値を返します。そして、メタ関数として定義された内容は、コンパイル時に静的に解決されます。もちろん、メタ関数の引数や返却値というのは、普通の