2009-03-01から1ヶ月間の記事一覧

クラスのポインタをvoid*でdeleteした場合デストラクタが呼ばれない

C++

意外と知らない人が多かったので簡単なサンプル #include <iostream> struct Hoge { ~Hoge() { std::cout << __FUNCTION__ << std::endl; } }; int main() { Hoge* p = new Hoge; void* pv = p; delete pv; return 0; } 実行結果 gcc4.4 実行結果 VC8 必ず正しいクラス</iostream>…

Erase-Remove Ideomを少しでも楽に使うために。(自分用メモ)

C++

こんな感じでコンテナの値を削除できるようにしてみた。 #include <algorithm> #include <vector> struct Hoge { int num_; explicit Hoge(int i) : num_(i) {} int getnum() { return num_; } }; int main(int argc, char** argv) { std::vector<Hoge> v; v.push_back(Hoge(1)); v.pu</hoge></vector></algorithm>…

boost::threadとstd::thread周りを調べてたら

C++

こんな記事を見つけました。 http://msdn.microsoft.com/ja-jp/magazine/cc163405.aspx 以下記事内に書かれているWindows Vista以降で使用可能な関数とPosixとの対応表を作ってみました。 PosixAfter Windows Vista pthread_cond_initInitializeConditionVar…

__FUNCTION__マクロのwchar_t版

C++

VCでは char版は__FUNCTION__ wchar_t版は__FUNCTIONW__ ほかには__FILE__も__FILEW__が存在します。 xutilityヘッダに以下のように定義されてます。 #define __STR2WSTR(str) L##str #define _STR2WSTR(str) __STR2WSTR(str) #define __FILEW__ _STR2WSTR(_…

月曜日から

徹夜です。 3日おきにリリースとかアジャイルにもほどがあります。 今までガチガチのウォーターフォールでやってきたくせに! ばか! そいえば昨日The翻訳2009プレミアム専門辞書パック買いました。 おかげで今月と来月は金欠状態です。 本当にありがとうご…

N2800 P29の一部を訳してみました。

C++

原文§ 2.13.7の2 2 A user-defined-literal is treated as a call to a literal operator or literal operator template (13.5.8). To determine the form of this call for a given user-defined-literal L with ud-suffix X, the literal-operator-id whos…

まだ考えてました。

C++

#include <tuple> #include <iostream> #include <string> #include <functional> #include <stdexcept> void printf(const char *s) { while (*s) { if (*s == '%' && *(++s) != '%') throw std::runtime_error("invalid format string: missing arguments"); std::cout << *s++; } } template</stdexcept></functional></string></iostream></tuple>

こんなのしか思いつかなかった。

C++

可変引数を保持しておいてそれを別な関数に渡すには? やりたい事と違うかもしれませんが #include <tuple> #include <iostream> #include <string> template <class T> void do_something(const T& t) { std::cout << t << std::endl; } template <class Tuple, size_t N> struct do_tuple_helper { static void do_al</class></class></string></iostream></tuple>…

いまさらですが。

mplを勉強中。C++関連の勉強会があれば今度わんくまの勉強会に参加してみたいなー。

threadクラスの実装を晒す2

C++

日にちがあいてしまいましたがエラー処置と引数を追加していきます。 コンストラクタで行っていた処理をstart_thread関数に移しています。 それに伴いthread_base*をメンバー変数p_にしました。 // thread.hpp #include <memory> // std::auto_ptr #include <process.h> // ::_b</process.h></memory>…