C++

C++11のVS2010への対応

C++

https://sites.google.com/site/cpprefjp/implementation-status cpprefjpに対応状況まとまっているが、std::array、std::for_each、std::tupleを調べてみた。 結果として、VS2010に対応していた! これで色々出来そう。 #include <iostream> #include <array> #include <tuple> int </tuple></array></iostream>…

ctypesでC言語側の配列データを取得する方法

参考 http://stackoverflow.com/questions/4213095/python-and-ctypes-how-to-correctly-pass-pointer-to-pointer-into-dll // c_hoge.cpp #include "c_hoge.h" #include <stdlib.h> static int numData = 0; static float* arData = NULL; void getArrayData(float** </stdlib.h>…

QStringとstd::wstringの変換

http://stackoverflow.com/questions/5625884/conversion-of-stdwstring-to-qstring-throws-linker-error /*! Convert a QString to an std::wstring */ std::wstring qToStdWString(const QString &str) { #ifdef _MSC_VER return std::wstring((const wcha…

CAtlMapでユーザー定義型

C++

以下、CAtlMapでキーにユーザ定義型を使用する方法。 Traitsの場合。 Traitsを使用しない場合は、DWORD()をオーバーロードしてハッシュ関数を定義する。 #include <atlcoll.h> class Node { public: long nid; float xyz[3]; Node() : nid(0) {} Node(long nid) : nid(n</atlcoll.h>…

64bitアプリ

C++

64bitプログラミングで気をつけること http://d.hatena.ne.jp/shikaku/20091124/p1 ユーザ領域のメモリは、8TBか。今後、8EB(エクサバイト)まで使えるようになるのだろうか。結局、OSによって制限されるみたい。

メモ

C++

LPWSTR型変数にCString文字列を渡す方法。 http://ameblo.jp/sogoh/entry-10863597869.html CString cs; LPWSTR lpwstr = const_cast<LPTSTR>(static_cast<LPCTSTR>(cs));</lpctstr></lptstr>

std::stringに関するメモ

C++

メンバ関数 http://diary.overlasting.net/2011-02-16-1.html

文字列に関するメモ

C++

http://victreal.com/Junk/_T/index.html 後で読む。

CStringに関するメモ

C++

メンバ関数 http://www.page.sannet.ne.jp/mtoga/lang/cv/bih-m_11.htm http://hanbeeonline.web.fc2.com/MFC_Tips/CString.htm http://typea.info/tips/wiki.cgi?page=MFC+CString http://www.kab-studio.biz/Programing/PragmaTwice/Main/222.html

Pythonのリスト

C++

Pythonのリストは、Cで配列で実装されている。C++でこれをやるには以下などがある。 std::vector (STL) CArray (MFC) std::vectorが一番速かったので、これを使うことにする。 CArrayでサイズ指定しても遅かったし、リンクリストのCListなどもやはり遅かった…

C++11のVS2010対応状況

C++

C++11の機能で、どこまでVS2010で対応しているか少し調べた。 以下対応しているもの。 ラムダ式 std::shared_ptr std::unordered_map 以下対応していないもの。 コンテナの初期化 (vector v = {1,2,3];) foreach メンバー初期化子 以下、ラムダ式の例(注:MF…

CMapのサンプル

C++

FEMで使う場合、ユーザー定義クラスとハッシュを組み合わせる必要がある。友人からサンプルをもらったので、メモしておく。 私は、FemNode2が気に入ったので、そちらを流用することにする。 #pragma once #include "stdafx.h" class FemNode { public: int i…

文字列型

C++

基本は、文字セットが2つ。UnicodeとMultiByte。 VisualStudioでは、デフォルトで、Unicodeの設定になっている。 例えば、VS2010では、メニューから「プロジェクト - ...のプロパティ - 構成プロパティ - 全般」の文字セットで、どちらかを選択出来る。 多…

ハッシュ

C++

C++でハッシュ(もしくはマップ)として使えそうなのは以下のもの。 STL: std::hash_map (マップ、SGIのSTLでありC++標準ではない) STL: std::map (マップ) MFC: CMap (ハッシュ?) C++11: std::unordered_map (ハッシュ、正式にはVS2010から) hash_mapよりCM…

メモ

C++

shared_ptrのメモ http://d.hatena.ne.jp/haru-s/20081231/1230716657 参照カウントだから、もちろん循環参照には使えない。。。 auto_ptrは非推奨。 自分でnew、deleteするなら、積極的に使うべき。 typdedefで別名付けは、ケースバイケースでソースが読み…

C++の記事

C++

C++の落とし穴 (http://shnya.jp/moin/C%2b%2b%e3%81%ae%e8%90%bd%e3%81%a8%e3%81%97%e7%a9%b4) 半分が、クラスの継承に関する事。やはり機能が複雑だと実行の仕組みも複雑になる。

ロベール本

C++を使う必要があり基礎から勉強しなおしたいと思って、『ロベールのC++入門講座』という本を買った。かなり内容がまとまっており、久しぶりのヒットだった。C++のこういう本を待ち望んでいた。C++は文法が細かいので、今まで網羅的にまとまった本がなかっ…

NVIパターン

メモ。下のリンクのコメント欄のNVIパターンのところを後で勉強するつもり。 気になったネタリンク: 独自言語 続 (http://d.hatena.ne.jp/kanoke/20071105)

RAII

C++

d.y.d 雑感 (http://www.kmonos.net/wlog/75.html#_2341070724) C++には RAII があって、C++で今の自分が書いたコードは絶対解放忘れを起こさないという自信が持てます 私の会社の本社で開発している次世代の大規模アプリはC++で書かれているが、RAIIやPimpl…

時間がない

時間が少しできたので昨日メモしておいた本の虫さんのconceptの記事と、k.inabaさんの「わなD」のD言語各論が公開になったので少しだけ読んだ。ライブラリ編と言語編はまだ読んでないが、明日にでも読むつもり。それにしてもk.inabaさんの記事は分かりやすく…

コンセプト

C++

次のC++言語の仕様として入る予定のconceptという予約語が非常に気になる。本の虫さんの紹介記事があるので明日読むつもり…。契約プログラミングに近いのか?http://cpplover.blogspot.com/2007/03/concepts-extending-c-templates-for.html

Resource Acquisition Is Initialization

C++

先日"いやなブログ"を読んでいて初めてRAIIというのを知った。色々検索していたらリソースを確実に解放するテクニックなのだなと思っていたのだが、k.inabaさんのサイトがヒットし、そうではないことがすごい良く分かった。Stroustrapの用語集よりもかなり分…

S氏へのインタビュー

C++

Bjarne Stroustrupインタビュー: http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html http://hp.vector.co.jp/authors/VA000092/jokes/strup.html 久しぶりに読み直した。真実が見え隠れしているようで面白い。 C++ が時間の無駄だというこ…

例外安全について

C++

「Exceptional C++」の例外安全の部分を読んだが、印象に残ったのは、 メモリ管理の部分を別のクラスに切り出す という部分だった。メモリ管理は実装詳細だと思うので、常にカプセル化すべきだが、データ構造をカプセル化した上で、さらにもう一段階カプセル…

C++はグッドか?

C++

はてなの日記経由でC++に関する面白いサイトを見つけた。 Bjarne Stroustrupインタビュー http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html この記事は明らかに作り物で、C++に対する皮肉だと思うのだが、目の付け所は面白い。私はC++は勉…

ポインタ型

C++

ことC++に関しては、ポインタは頭が痛い。特にジェネリックな実装をする場合には。 例えば、あるクラスを引数で受け取り、それをtemplateで型を抽象化する場合、その型が、ポインタ型なのか、実体型なのかで実装が違う。 template void foo(T val) { // Tが…

イテレータ

Pythonの、あるクラスに対するiterateは、例えば以下のように行う。 for i in A(1, 6): print i, # => 1 2 3 4 5つまり、イテレータのカーソルデータをインスタンスオブジェクトの中に埋め込む訳であり、クラスの中にイテレータを実装する訳である。これは、…