タグ

C++に関するshiworkのブックマーク (60)

  • C++用xUnitでのテストの書き方 - 2009-11-07 - ククログ

    注: 長いです。 スクリプト言語でのxUnit実装を使ったことがある方なら、テストを定義するだけでテストが実行されることが当たり前ではないでしょうか。c2.comのWikiによると、これはTest Collectorというそうです。定義したテストを自動的に集めてくる機能のことです。 一般的にTest Collectorの機能は言語が提供するリフレクション機能やメタプログラミング機能を使って実現されます。 例えば、Rubyのtest-unit 2.xでは、リフレクションを使う方法とメタプログラミングを使う方法の両方をサポートしています。リフレクションを使う方法ではObjectSpace.each_object(Class)ですべてのクラスを取得し、その中のTest::Unit::TestCaseのサブクラスを集めます。メタプログラミングを使う方法ではTest::Unit::TestCase.

    C++用xUnitでのテストの書き方 - 2009-11-07 - ククログ
    shiwork
    shiwork 2009/11/20
  • C/C++セキュアコーディング入門一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    C/C++セキュアコーディング入門一覧
  • 今日からできる!Googleコード規約! - peroon's diary

    Google C++スタイルガイド日語訳 を参考にしました。 その中から私が理解したもの、 いいなと思ったものだけを紹介します。 関数の引数の書き方 f(hoge, foo, var)左右の括弧と変数の間にスペースをはさまないこと。 定数にはkを先頭につける const int kDaysInAWeek = 7;何のkだろう?(追記:konstant) クラス名はキャメルケース class HumanBody { ... };ラクダのこぶのように。 メソッド、関数は大文字からはじめる void MyFunction(); 変数名は小文字とアンダーバー float my_variable; 列挙子には大文字とアンダーバー enum color { RED_COLOR, GREEN_COLOR, BLUE_COLOR };この命名法で定数と列挙子も区別している? 定数、メソッド、クラス変数の

    今日からできる!Googleコード規約! - peroon's diary
  • MFCから.NETへの実践的移行計画(1/5) - @IT

    前編では、ネイティブ・コードとして記述したC/C++ライブラリをマネージ・コードであるC++/CLIでラップし(すなわち.NET化)、それをC#やVisual Basic(以下VB)などの.NET言語から呼び出す手順について解説しました。 この後を受けて、中編ではその応用としてVisual C++(以下VC++)による.NETアプリケーション構築の1つの戦術を紹介します。 ■C++/CLIによるWindowsフォーム・アプリケーション .NET FrameworkとVisual Studio-IDEの助けを借りて、VC++だけで.NETWindowsフォーム・アプリケーションを組み上げることはもちろん可能です。ですが筆者はVC++のみでのWindowsフォーム・アプリケーション構築には少なからず疑問を感じています。 それについて議論するために、まずはVisual Studio 2005(

  • ちょっとだけマイナーなSTLの話 - d.y.d.

    21:23 09/11/29 ドラクエ3 ドラゴンクエスト III モバイル版 が配信開始されたと聞いてはプレイせずにはいられない、ということで、さっきクリア。 内容は 「SFC版のベタ移植 - すごろく場 + AI戦闘」 ですね。 すごろく場が減った分、限定アイテムが他の場所に移動 (パワーベルト・ドラゴンテイル・ドラゴンローブ・グリンガムのムチが小さなメダル賞品に。 光のドレスがゾーマ城の宝箱に。雷神の剣も宝箱だった気がする。あと、小さなメダルの総数が110枚で変化無しらしいので、 すごろく場にあった分が通常マップに押し出されて、ところてん式に押された炎のブーメランもメダル賞品化)。 不思議なボレロと女神の指輪は見てない。なくなった? AIは、マヌーサ/ラリホー/マホトーン辺りを効く相手にだけ積極的に使ってくれるので参考になる&便利。 勇者もAI駆動にできるモードが欲しかった 細かいと

    shiwork
    shiwork 2009/11/13
  • 【C++/CLI】Vista到来。既存C/C 資産の.NET化を始めよう! - @IT

    ●Win32スタティック・ライブラリ(C++クラス)の準備 先ほどのhello関数と同様、簡単なネイティブ・クラスを考えます。ここでは「counter」という名前のソリューションとプロジェクトを作成し、counterクラスをC++で実装します(以下の開発手順は先ほどとほぼ同じなので詳細は省略します)。 #ifndef COUNTER_H__ #define COUNTER_H__ class counter { private: int value_; public: counter(); void increment(); int value() const; }; #endif

  • C++リファレンス - cppreference.com

    スマートポインタとアロケータ 日付と時間 関数オブジェクト  −  hash (C++11) 文字列変換 (C++17) ユーティリティ関数 pair  − tuple (C++11) optional (C++17)  −  any (C++17) variant (C++17)  −  format (C++20)

  • ひきぷろぐ - FC2 BLOG パスワード認証

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

    shiwork
    shiwork 2009/11/09
  • C/C++ から main 関数が消える日 - カタチづくり

    Windows上でデスクトップアプリを開発している身としては、そのうちC/C++でmain関数を書く人って一人もいなくなるんじゃね、と思っている。もちろん簡単なテストコードのためにはmain関数が書けるほうが便利だから全く無くなるわけじゃないんだけど、C/C++でmain関数書いて最終成果物としてリリースされる機会は、もう無くなる日は近い。 C/C++の優位性はパフォーマンスとか低位のAPIを直接叩けるとかしかない。その性能を活かすには要所要所でC/C++ネイティブコードをDLL化して呼び出せば十分で、アプリケーション全体をC/C++で書く必要は全くない。アプリ全体を構築する能力は圧倒的にC#/.NET Framewokのほうが優れている。つまりC/C++でmain関数を書く必要はなく、単にDLLとして関数をエクスポートできれば十分ってことだ。 これは純粋なC/C++の話じゃないけれど、た

    C/C++ から main 関数が消える日 - カタチづくり
    shiwork
    shiwork 2009/11/09
  • 並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」

    #include <stdlib.h> #include <time.h> #include <limits.h> #include <iostream> #include <windows.h> #include <winnt.h> #include <tchar.h> #include <StrSafe.h> #include <process.h> using namespace std; int stockCount = 10; //在庫数 //商品の生産を行う関数 DWORD WINAPI Producer( PVOID pvParam ) { //増加数を読み出す int point = PtrToUlong(pvParam); //処理を行うために在庫数を読み出す //※DBかファイルから値を読み出していると仮定してください int tmp = stockCount; //商

    並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」
    shiwork
    shiwork 2009/10/15
  • 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

  • プログラミングの禁じ手Web版 C言語編(InternetArchiveよりサルベージ) - Akio's Log

    はじめに 昔お世話になったC Magazineの「プログラミングの禁じ手Web版 C言語編」というサイトを、後輩に教えてあげようとしたら、C Magazineの休刊後にドメインが失効してしまったようで、見る事が出来ませんでした。 幸い、InternetArchive(http://www.archive.org/web/web.php) に当時のデータがほぼ残っていたので、無許可ではありますがサルベージして転載させてもらいました。 「C MAGAZINE - プログラミングの禁じ手Web版 C言語編」 元のアドレスはこちら。 http://www.cmagazine.jp/src/kinjite/c/index.html InternetArchive http://web.archive.org/web/20070113222026/http://www.cmagazine.jp/src

    プログラミングの禁じ手Web版 C言語編(InternetArchiveよりサルベージ) - Akio's Log
  • C++0xの新機能「ラムダ式」を次期Visual Studioでいち早く試す

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    C++0xの新機能「ラムダ式」を次期Visual Studioでいち早く試す
    shiwork
    shiwork 2009/09/10
  • オープンソース化された並列化テンプレートクラスライブラリ「Intel Threading Building Blocks」入門 | OSDN Magazine

    C++で並列アプリケーションを実装するためのテンプレートライブラリとして、インテルがリリースしている「Intel Threading Building Blocks」(TBB)がある。TBBはインテル コンパイラーやインテル Parallel Studioといったインテルのコンパイラ製品に付属しているほか、オープンソース版も公開されている。記事ではこのTBBの概要と、基的な使い方を解説する。 C/C++で並列アプリケーションを実装する手法として、並列化したい処理をOSのAPIを用いてマルチスレッド化する、もしくは並列プログラミングの規格である「OpenMP」を利用する、といったものが知られている。これらについては以前の記事でも紹介しているが、マルチスレッドを利用した実装は柔軟性がある一方で手間が掛かり、OpenMPは比較的手軽だが柔軟性に欠けるなど、それぞれに長所と短所がある。 また、

    オープンソース化された並列化テンプレートクラスライブラリ「Intel Threading Building Blocks」入門 | OSDN Magazine
  • C++におけるスマートポインタとシリアライズ~boostライブラリにパッチが採用されるまで~|オブジェクトの広場

    記事は、筆者がプログラミング言語C++を用いてソフトを開発している際に遭遇した問題と、その解決までをまとめたものです。 現在のC++プログラミングでは、多くの場面でBoostライブラリを利用します。今回筆者は、動的なオブジェクトのライフタイムを自動的に管理するためにboost::shared_ptrおよびboost::weak_ptrを、オブジェクトを保存・復元するために、boost::serializationのライブラリを利用しました。そこで予想外の問題に遭遇し、Boostにバグ報告し、解析を行い、最終的にパッチを送り、それが採用され、線にマージされることになりました。その過程で、普段利用しているだけでは意識することのない、Boostライブラリの実装の工夫を垣間見ることになりました。そのあたりの情報も交えながら、いったいどんな問題にぶつかり、どうやって解決したのかを紹介したいと思い

  • enum classをintに変換 - Faith and Brave - C++で遊ぼう

    C++0xで導入されるenum classは、C++03までのenumよりも型付けが 強くなっているのでint型への暗黙の型変換はできなくなっています。 enum class Color { Blue = 0, Yello, Red }; int color = Color::Red; // エラー!Colorからintへ変換できません 明示的な型変換ならいけるかな、と思ったのでenum classを実装しているGCC 4.4で試してみました。 int color = static_cast<int>(Color::Red); // OK : colorは2 明示的な型変換はできるみたいです。 intからenum classへの変換も、明示的な型変換をすればいけます。 void foo(Color color) {} foo(2); // エラー!第1引数をintからColorへ変換できま

    enum classをintに変換 - Faith and Brave - C++で遊ぼう
  • Douglas Gregor、フランクフルト会議について語る

    What Happened in Frankfurt? « C++Next これは全C++0xプログラマが読むべきだと思う。悲しい話だ。 フランクフルトで何があったのか? C++0xの発展に興味のある人は、もうニュースを聞いただろうと思う。ISO C++委員会は、2009年7月のフランクフルト会議で、C++0xのドラフトから、Conceptを外すことを、投票で決めた。Conceptは、C++0xの重要な機能で、その削除は、かなりショックを与えたことだろう。ここでは、私はConceptをC++0xに入れるにあたってなされた努力と、結果的に失敗した理由を、語ろうと思う。 Conceptの歴史 C++プログラマは、常に、もっとマシにtemplateを使いたいと考えていた。契約的(原語:constraints)なC++templateは、少なくとも、Bjarne StroustrupのThe D

  • UTF-8 の文字列を操作するための補助関数群 - Cube Lilac

    UTF-8 の文字列を操作するための補助関数群を作ってみました.当初,find() などの特定の文字列を見つける部分の実装が面倒そうだなぁと思っていたのですが,UTF-8 の 2 バイト目以降には 1 バイト目に出現しうる値は出現しないのですね. ビットパターンは以下のようになっている。 0xxxxxxx (00-7f) 7bit 110yyyyx 10xxxxxx (c0-df)(80-bf) 11bit 1110yyyy 10yxxxxx 10xxxxxx (e0-ef)(80-bf)(80-bf) 16bit 11110yyy 10yyxxxx 10xxxxxx 10xxxxxx (f0-f7)(80-bf)(80-bf)(80-bf) 21bit UTF-8 - Wikipedia そんな訳で find() などは std::string の find() をそのまま使えば良さそう

    UTF-8 の文字列を操作するための補助関数群 - Cube Lilac
  • Bjarne Stroustrup、Conceptと未来を語る

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

  • Twitter の半径数クリック以内の情報収集 - IT戦記

    ちょっと 現実頭皮的に自己満足的プログラムを書きたくなったので Twitter のクローラーを書いてみた。 C++ にしては、割とすっきり書けて満足。 使ったライブラリ soci データベースライブラリ picojson json パーサー boost.asio ネットワークライブラリ boost.date_time 日付時刻ライブラリ ソース #include <cassert> #include <soci.h> #include <soci-sqlite3.h> #include <unistd.h> #include <iostream> #include <sstream> #include <picojson.h> #include <boost/scoped_ptr.hpp> #include <boost/asio.hpp> #include <boost/cast.hpp

    Twitter の半径数クリック以内の情報収集 - IT戦記