タグ

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

タグの絞り込みを解除

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

  • mpl::string - Faith and Brave - C++で遊ぼう

    というわけで、Boost 1.40.0でmpl::string(コンパイル時文字列!)が追加されたので 試してみました。 #include <iostream> #include <boost/mpl/string.hpp> using namespace std; namespace mpl = boost::mpl; int main() { typedef mpl::string<'Hell', 'o Wo', 'rld '> str; cout << mpl::c_str<str>::value << endl; } Hello World おぉ、ほんとに動くw ちなみに、試したのはVC++ 9.0 SP1とGCC 4.4です。

    mpl::string - Faith and Brave - C++で遊ぼう
  • C++の場合ポインタとの比較にはNULLではなく0が使われることが多いようですが、なぜでしょうか。 - 元々C言語においても、ポインタを... - Yahoo!知恵袋

    https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1313381668 元々C言語においても、ポインタを書くべきところに定数0が書かれていた場合、 コンパイル時にヌルポインタに変換されるようになっています(ANSI C規格でもそのように定義されています)。 但し、 1) ANSI Cではヌルポインタとして「#define NULL ((void *)0)」という定義を認めている。この方法は、ポインタ型の大きさがどの整数型の大きさとも異なる場合に有効である(void*から他のポインタ型への暗黙の型変換は合法である)。 2) 定数0を使えるとはいえど、作法としてNULLを使って「これはヌルポインタです」と明示したほうがよい、と考えているCプログラマが多い。 などの理由で、C言語ではヌルポインタとしてNULLが良く使われますし、し

    C++の場合ポインタとの比較にはNULLではなく0が使われることが多いようですが、なぜでしょうか。 - 元々C言語においても、ポインタを... - Yahoo!知恵袋
    tyru
    tyru 2009/10/23
    C++ではvoid*を任意のポインタに代入する場合には明示的なキャストをしなくてはならないので「(void *)0」を使うメリッ
  • operator newとoperator deleteを書くときは規約を守ろう 8項 - higepon blog

    operator new を自分で作成するならば、いろいろ約束を守ろうという話。 自分もMonaでなんとなく new をユーザーランド向けに実装しているが以下のルールを一部守っていない気がする。 newのお約束 0byteの要求に対しても正規のポインタを返さなければならない(実装例では0byte要求は1byte要求として扱っている) エラー処理関数を呼ばなければならない std::bad_allocを投げないといけない Monaは例外をサポートしていないので今のところ無理p deleteのお約束 NULLポインタのdeleteを安全に行わせる。 つまりこれは よく見かけるコード if (somePointer != NULL) delete somePointer; は これでよい delete somePointer;ということになる。 追記: Monaのユーザランドで、newの0割り当

    operator newとoperator deleteを書くときは規約を守ろう 8項 - higepon blog
  • 『イテレータを自作するには?』

    C++ フリーでぷろぐらみんぐ 逆引きリファレンス。 C++のやりたい事から引ける逆引きメモを書いています。 何かコメントなどいただけると嬉しいです! C++では、STLを使用すると特にイテレータが大活躍ですね(^^) 自分でイテレータを作成する必要にせまられることはないかと思います。 でも、独自のイテレータを作成するにはどうしたらよいかは興味深いと思います。 さて、ここでは、char*のイテレータを作成しようと思います。 あまり意味の無い試みです。 なぜなら、アルゴリズムの、copyやreverseなど様々な関数テンプレートはおそらくchar*の型をそのまま扱えるからです。 ま。遊びなので 【サンプル】 #include <cstdlib> #include <iostream> #include <iterator> #include <algorithm> #include <sst

    tyru
    tyru 2009/10/20
  • cppgui - Faith and Brave - C++で遊ぼう

    だそうです。 http://www.assembla.com/wiki/show/cppgui #include <gui/gui.hpp> int main() { using namespace gui::keywords; gui::wnd<> w = gui::create<gui::frame_window>( _title = "Hello!", _size = gui::point(100, 100) ); gui::create<gui::controls::button>( _text = "Hello World!", _parent = w ); gui::wait(); } これに関する議論はここらへん。 http://thread.gmane.org/gmane.comp.lib.boost.devel/190648

    cppgui - Faith and Brave - C++で遊ぼう
  • Home | Cppgui | Assembla

    Documentation I've started some effort to write some preliminary documentation. You can find it at Tutorial. If you find any errors, or you have any doubts, or just want to complain, talk to me through email eu at felipemagno.com.br. QT 4.x support QT support is being written, while fixing some of the public interface to adjust portability. For now, it is been quite easy. The modal dialog int

  • アンパンマンをC++的に考える:Geekなぺーじ

    はてな村界隈でアンパンマンとバイキンマンに関して盛り上がっているようです。 「はてブ:バイキンマンは何故ジャムおじさんとバタ子を攻撃しないか。 - 蹴ったり叩いたり - 楽天ブログ(Blog)」 個人的に昔からアンパンマンの歌詞で納得がいかない部分があったのですが、先ほどTwitterで呟いていたら自分の中で納得ができる解が作れたので、書いてみようと思います。 アンパンマンの歌詞には以下のような部分があります。 そうだ恐れないで みんなのために 愛と勇気だけが友達さ ああ アンパンマン やさしい君は いけ! みんなの夢まもるため まず、最初に気になっているのが「愛と勇気だけが友達さ」という部分です。 この部分をpseudo codeにすると以下のようになる気がします。 if (愛 || 勇気) {友達} else {not 友達} 「愛と勇気 "が" 友達」であれば、elseの部分にさらに

  • CとC++の動的メモリー管理(1)、malloc関数とnew演算子の違いを知る | EE Times Japan

    C言語とC++言語では、動的にメモリーを確保したり解放したりする手法は異なり、それぞれ長所と短所がある。もちろん、安全性を最重要視する組み込み機器では、動的に確保したメモリーを利用すべきでないという考え方には心から賛同する。リスクが利点を上回ってしまうからだ。しかし場合によっては、動的なメモリーを適切に管理することで改善できることも多いのではないかとも考えている。 C言語やC++言語に標準的に用意されているメモリー管理向け関数の動作が意図した通りでない場合は、メモリー管理関数を独自に開発するとよい。独自のメモリー管理関数の仕様と振る舞いは、できる限り標準関数と同じにすることが理想である。標準関数のメモリー管理方法と違ってしまう場合でも、関数の引数と返り値の数と型は、可能な限り標準関数にそろえるべきである。関数の仕様を同一にしておくことで、最初は標準のメモリー管理関数を使って開発し、必要に応

    tyru
    tyru 2009/09/04
  • 旅日記

    この三日、非常に疲れたので、その記録を日記にして書いておこうと思う。 28日、予備自補の教育訓練の最終日 予備自補の教育訓練の一課程の最終日であった。各課程の最終日は、官品の返納があるので、基的に作業服や半長などの官品は装備しなくてよい。従って、0600の朝の点呼も、非常に楽であった。ラッパと共に飛び起きて、作業服や半長と格闘するという、毎朝の恒例行事がないからだ。Tシャツにジャージという、実に楽な格好で、舎前に集合すればよい。 まだ三課程しか受けていないから分からないが、基的に、各課程の最終日というのは、午前中は座学、午後は返納と離隊の為の整備に当てられるようだ。最近はようやく、作業服のプレスも出来るようになってきた。 娑婆世界への帰還 さて、訓練の修了式を行って、1700に離隊した。今回は、二課程連続で受けている人、つまり、十日間も駐屯地内にいた人もいるためか、駐屯地を出ると、

    tyru
    tyru 2009/08/31
  • https://faithandbrave.hateblo.jp/entry/20071005/1191579496

    tyru
    tyru 2009/08/17
  • Bjarne Stroustrup、Conceptと未来を語る

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

    tyru
    tyru 2009/08/16
  • beeplex.net:ホーム

    beeplex

    tyru
    tyru 2009/08/13
  • XcodeではBoost.Fusion.Listが使えない...? - Faith and Brave - C++で遊ぼう

    以下は、Xcode 3.1.3(コンパイラはGCC 4.2)で検証したコードですが #include <boost/fusion/include/list.hpp> namespace fusion = boost::fusion; int main() { fusion::list<int, double> t(1, 3.14); } ビルドすると大量のエラーが出ます。 どうやらFusionのソースにある以下の部分が引っかかってるようです。 namespace boost { namespace fusion { struct nil; // error:expected identifier before '__null' }} nilはObjective-Cの予約語なのでエラーになってるみたいですが プロジェクトの設定でObjective-Cは無効にしてあるのでこれは通るべきだと思い

    XcodeではBoost.Fusion.Listが使えない...? - Faith and Brave - C++で遊ぼう
  • 続・バグを生まないコーディング法 | EE Times Japan

    フォーラムでの議論は次のような発言から始まった。 「中括弧を使って複合文を記述し、文の切れ目にセミコロン「;」を使う言語では、オールマン・スタイルを使うべきではない」 私はどちらのスタイルでもよいと思っているが、「1TBSでは図2のような間違いを人間のコード・レビュワーが発見しにくい」という1TBSに対する批判は受け入れがたい。 人間のコード・レビュワーが、このような間違いを見落とす可能性があることは認める。しかし、まさにこの例は、ここで紹介するようなコーディング規則の重要性を物語っている。つまり、「バグを効果的に排除するためには、コーディング規則に強制力がなければならない。2個以上の競合する規則がそれぞれバグを防げても、それらの中の1つの規則だけが自動的に強制できる場合は、より強制力がある規則の適用が推奨される」ということだ。 われわれのコーディング規則では、上記のような例はまさに自動

  • Sufficiently Small » In C++ throw is an expression

    tyru
    tyru 2009/07/31
  • 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サーバ書いた。
    tyru
    tyru 2009/07/30
  • SANS - Internet Storm Center - Cooperative Cyber Threat Monitor And Alert System

    © 2024 SANS™ Internet Storm Center Developers: We have an API for you! Link To Us About Us Handlers Privacy Policy

    SANS - Internet Storm Center - Cooperative Cyber Threat Monitor And Alert System
  • AndroidアプリでC/C++のライブラリを流用可能に,Googleが開発キット投入

    Googleは米国時間2009年6月25日,携帯電話機向けソフトウエア基盤「Android」用アプリケーションの一部をC/C++言語で記述できるようにする開発キット「Android 1.5 Native Development Kit(NDK), Release 1」を公開したと発表した。 Android用アプリケーションはこれまで,Javaで記述し仮想マシン「Dalvik」で動かすしかなかった(関連記事:【続報】Androidアプリの記述言語はJava、ランタイムの仮想マシン「Dalvik」は自ら開発)。だがNDKを使うとC/C++で作ったライブラリをアプリケーションから呼び出せるようになり,既存ライブラリの流用が可能になる。C/C++ライブラリは,アプリケーション配布用のパッケージ・ファイル(.apks形式)に同こんできる。 NDKは標準Cライブラリ「libc」と標準算術演算ライブラ

    AndroidアプリでC/C++のライブラリを流用可能に,Googleが開発キット投入
  • VC10はstatic_assertをコンパイル前に評価してくれるらしい - Faith and Brave - C++で遊ぼう

    Visual C++ Team Blog - Intellisense and Browsing with C++0x コーディング時のエラー検出で、static_assertも評価するみたいです。 コンパイルすらしないテンプレートメタプログラミングができそうですね。 (IDE落ちそうだ…)

    VC10はstatic_assertをコンパイル前に評価してくれるらしい - Faith and Brave - C++で遊ぼう
  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ
    tyru
    tyru 2009/07/13
    diffのアルゴリズムの説明やライブラリ。ヘッダをインクルードするだけで使える。