タグ

c++とC++に関するmattnのブックマーク (119)

  • C++で文字列のsplitにstringstreamが使える気がする – taichino.com

    久々にtopcoderをやってみたんですが、1問しか解けませんでした。終わった時は練習しようと思うんですが、中々実行できないです。。 久々すぎて文字列のsplitすら出来なくて、そんな馬鹿なと思って調べてみると、STLのstringってsplitメソッドが無いんですね。仕方ないのでその辺のコードをコピペしたんですが、終わってから皆さんのコードを見るとstringstreamでsplitするのが、常套手段っぽくて、初めて目にしたのでメモ書きです。 #include #include #include #include using namespace std; int main(int argc, char* argv) { stringstream ss("hello std world"); // これでスペースで文字列splitできる string elem; while (ss >>

    mattn
    mattn 2010/03/06
  • あまやどり: OAuthで認証してTwitterでつぶやいてみた

    2009年11月23日月曜日 OAuthで認証してTwitterでつぶやいてみた 先日の記事で取り上げたTwiticaを、OAuthでの認証に対応してみました。 JavaとかPerlとかPythonとかRubyとかC#ではサンプルがさくっと見つかったりライブラリがあったりするのですが、C++は見つからず。C++/CLIなら.Net用のものが使えるみたいですが。しかしTwiticaがネイティブC++で書かれているので、そのまま貫き通します。 OAuthの手順 下記の記事は大変参考になりました。ありがとうございます。 『xtra/OAuth1.0』- irevo labs (OAuth仕様書の日語訳) 『twitterでOAuthを使う方法(その1:認証まで)』 - てっく☆ゆきろぐ 『twitterでOAuthを使う方法(その2:前回の続き〜APIにアクセスしてみる)』 - てっ

  • vtable版Type Erasureでコードに直接現れないロギング - Faith and Brave - C++で遊ぼう

    ロギングってイヤですよね。 コードが汚くなるし、1行しか処理がないのに 関数の出入りをロギングするために3行になってしまったり。 こういうときに、コードに直接現れない侵入的なロギングが必要だなと思います。 聞くところによると、それはAOPの動機にもなってるんだとか。 聞くところによると、それはBoost.Interfacesの動機にもなってるんだとか。 つまりこういうことですね。 #include <iostream> #include <string> #include <boost/noncopyable.hpp> class log : boost::noncopyable { public: static log& instance() { static log this_; return this_; } void out(const std::string& s) const

    vtable版Type Erasureでコードに直接現れないロギング - Faith and Brave - C++で遊ぼう
    mattn
    mattn 2010/02/05
  • Hans-J. Boehm

    mattn
    mattn 2010/01/29
  • Maciej Sobczak Homepage

    Note: All formatters from the TYPE_formatter family use the most natural format, which is what is expected "most of the time". When used for reading, they: a) skip whitespace and b) read the token as long as it makes sense. Skipping whitespace is not performed when reading with char_formatter. The formatters from the TYPE_printf_formatter family delegate to snprintf and use the format stored in w

    mattn
    mattn 2010/01/20
    glowupのreserve次第じゃないの?
  • plda - Google Code

    Code Archive Skip to content Google About Google Privacy Terms

    mattn
    mattn 2010/01/06
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

    mattn
    mattn 2010/01/06
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

    mattn
    mattn 2010/01/06
  • http://g.oswego.edu/pub/papers/C++Report89.txt

    mattn
    mattn 2009/12/22
  • C++でPropertyつづき - xyuyuxの日記

    前のエントリーに上書きしちゃったみたいです。汗 Boost.Propertyの実装案みたいなもの->http://codepad.org/A4vaAMPZ これみて簡単にならないかやってみました。 #include <boost/typeof/typeof.hpp> #include <iostream> template<typename T> struct property_get_type; template<typename ReturnType,typename Class> struct property_get_type<ReturnType (Class::*)() const> { typedef ReturnType type; }; template<typename T> struct property_set_type; template<typename Ret

    C++でPropertyつづき - xyuyuxの日記
    mattn
    mattn 2009/12/16
  • プログラミングメモ - new が失敗したときの扱い方

    ■newが失敗するとポインタにNULLが返ってきます。 #include <stdio.h> void main(){ int*i; i=new int[1000000000]; if(i==NULL){ printf("new 失敗\n"); }else{ printf("new 成功\n"); } delete[] i; } 最後にまとめて delete するのはお作法的にまずかろう,とか思うんですけれど(delete NULL は安全だから,まぁいいっちゃいんだけど),それはさておき,見るのは i の中を見て new が成功したか判断しているところです。C では一般的な方法。 ここら辺は微妙に混乱するところなんだけれども,new したときに返値の NULL をアテにしていい(malloc(3) と同じようなエラー処理になる)処理系は,あたしの知る限り,VC6 標準の挙動だけだった気が

    mattn
    mattn 2009/12/11
  • 情報科学苦手の会に参加してきました | TAKESAKO @ Yet another Cybozu Labs

    今年の情報科学若手の会には参加できなかったので、情報科学苦手の会の方に参加してきました。 幹事のみずしまさん、運営周りをいろいろサポートしていたsyuuさん(ハンドルネーム)、会場提供たけおかさん、その他発表者のみなさん、参加者のみなさん、ありがとうございました。 自分はC++が苦手なので、templateでコンパイル時に素数を数え上げるプログラムを作成して自習勉強してみました。苦手な法律の話も勉強したのですが、ピザ到着の時間が近かったので今回は発表をパスさせていただきました。 ■ C++テンプレートでコンパイル時に静的に素数を計算する 元ネタ: C++テンプレートでFizzBuzz – おびなたん☆ Kazuho@Cybozu Labs: C++ テンプレートで(いまさら)FizzBuzz C++のテンプレートで素数計算 – 西尾泰和のはてなダイアリー ちょっと古い話題ですが、enumを

    mattn
    mattn 2009/12/08
  • 本の虫: C++0xの新しい乱数ライブラリ、random

    注意:最新ドラフトのN3000のrandomの規定は、コンセプトが却下される前の文面であり、今後、変更があると思われる。 C++は標準ライブラリが貧弱であるとは、よく言われることだ。ことに、乱数に関しては、貧弱の極みである。ご存じのように、C++は、Cから標準ライブラリを引き継いでいる。rand()だ。これは、0からRAND_MAXまでの値を返すと規定されている。RAND_MAXは実装によって異なるが、ほとんどの処理系では、32767である。現代の乱数需要を満たすには、あまりにも小さすぎる。 この状況を打破すべく、C++0xには新しい乱数のライブラリが盛り込まれた。randomである。これはBoostの実装を元にしているのだが、Boostとは少し違っている。今回はそのrandomを、浅く触りだけ紹介しようと思う。というのも、ライブラリの細かなメンバ関数の一つ一つまで説明するのは、甚だ冗長で

    mattn
    mattn 2009/11/25
    deviceってあるけど、エントロピーリソースなんだろうか。
  • C MAGAZINE - プログラミングの禁じ手Web版 C++編

    プログラミングの禁じ手Web版 C++編 /Top/今週のソースコード/プログラミングの禁じ手Web版 C++編/ [←前] [次→]  [C言語版一覧] [C++版一覧] 誌2000年7月号に掲載された「特集1 プログラミングの禁じ手 C++言語編」よりWebサイト用に抜粋したものです。ソースコードとともに公開いたします。作者の真紀俊男様に感謝します。 プログラミングで,これをやってはいけない,これをするとドツボにハマるという「禁じ手」を紹介します。C++はC言語の改良版として開発され,すでにC言語から乗り換えてうまく運営できていると喜んでいるところが多いはずなのですが,調べてみると,そうでもない,かえってトラブルが増えた,どうしてなんだ,という声も少なくありません。 果たして何がいけなかったのでしょうか? なぜうまくいかないのか,どうすればうまくいくのかを考察したいと思います。 また

    mattn
    mattn 2009/11/12
  • ひきぷろぐ - FC2 BLOG パスワード認証

    ブログ パスワード認証 閲覧するには管理人が設定した パスワードの入力が必要です。 管理人からのメッセージ 閲覧パスワード Copyright © since 1999 FC2 inc. All Rights Reserved.

    mattn
    mattn 2009/11/06
  • Lambda abstractions in C++ vs. Scheme

    Lambda abstractions in C++ vs. Scheme This article is to exhibit lambda abstractions in C++ in comparison with those of traditional functional languages (e.g., Scheme). The article will try to demonstrate that "applicable values" in C++ not only look similar to their functional cousins. They are equal in meaning as well. The same can be said for currying. This article will not prove that C++ and S

  • Bjarne Stroustrup インタビュー (?)

    これは物なのかなあ…。Computer 誌(IEEE 発行)が C++ 言語の開発者 Bjarne Stroustrup 氏に行ったインタビューの記録だそうです。内容に非常に問題があるため実際には掲載されなかったのが、どこからかリークされたものだとか。 物かどうかは自分で判断してください。私としては何とも言えません。Usenet のニュースグループ rec.games.roguelike.angband への投稿記事が原文です。(英語原文はこちら) インタビューア(以下「I」):  あなたがソフトウェアデザインの世界を一変させてから何年にもなる。振り返ってみて、感想は。 Stroustrup(以下「S」):  実はあなたがここへ来る直前、当時のことを思い出していたんだ。おぼえているかな。誰もが C 言語を使っていたけど、問題はみんな結構うまくコーディングしていたことだった。大学も C

    mattn
    mattn 2009/10/26
    「Synergistic」という言葉は、プロジェクト管理者の胸に刺さったナイフをグリグリ回すためだけに発明されたんじゃないかと思うな。」
  • 続・mapの検索と値取得 - Faith and Brave - C++で遊ぼう

    mapの検索と値取得の続き Steven Watanabeさんが「ポインタでいいじゃん」と言ってて、 ポインタを直接使うのがイヤだったので、ポインタをラップしたptr_optionalを用意しました。 ユーザーコードは、昨日のとほとんど変わりません。(optionalがptr_optionalになっただけ) #include <iostream> #include <map> #include <string> template <class T> class ptr_optional { const T* p_; public: ptr_optional() : p_(0) {} ptr_optional(const T* p) : p_(p) {} const T& get() const { return *p_; } operator bool() const { return p

    続・mapの検索と値取得 - Faith and Brave - C++で遊ぼう
    mattn
    mattn 2009/10/22
  • diffをつくる(3) -後編 - エンジニアのソフトウェア的愛情

    任意のコンテナに対してdiffをとれるようにテンプレートにしました。 ポイントはテンプレートになっているのが、diffの入り口Diff::ond関数だけというところです。このためdiffを求めるプログラムの大半をバイナリとしてライブラリ化することもできます。またオブジェクトの内部に記憶しているのは操作の手順のみなので、stringでもvectorでも、おなじオブジェクトでdiffをとることができます。 実行例。 $ cat hello_c++.txt Hello C++! $ cat hello_diff.txt Hello diff! $ ./my_diff3_2 hello_c++.txt hello_diff.txt FILE NAME: 7 h e l l o _ - c - + - + + d + i + f + f . t x t CONTENTS: 2 Hello - C++

    diffをつくる(3) -後編 - エンジニアのソフトウェア的愛情
    mattn
    mattn 2009/10/22
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    mattn
    mattn 2009/10/08
    またmattnテンプレかw