C++
struct Doll { int id; std::string suffix; }; void rozen() { std::vector<int> favIdList = { 202, 707 }; // ソート済み std::vector<Doll> dolls = { // id でソート済み { 101, "dawa-" }, { 202, "kashira" }, { 303, "desu-" }, { 404, "dayo" }, { 505, "nanod</doll></int>…
#include <iostream> template<typename T> class A { public: A() { std::cout << "A()" << std::endl; } A(const A<T>& t) { std::cout << "A<T>()" << std::endl; } template<typename U> A(const A<U>& u) { std::cout << "A<U>()" << std::endl; } }; int main() { A<int> int1; A<int> int2(int1); A<long> long_(int…</long></int></int></u></u></typename></t></t></typename></iostream>
struct A { A(){} A(int dummy){} operator bool () const { return true; } }; if(int n = 1) { // 当然OK } if(A a(1)) { // C2059 } if(A a) { // C2059 } if(A a = A(1)) { // OK } へー…真ん中もOKになりませんかね(ぉ
諸事情でカンマ演算子を使いたいなぁ…というシーンに遭遇したのですが、何でかコンパイルが通らなくて死亡。最終的に↓ココまで単純化したのですが、コンパイルが通らない…はて… int main() { int n = 1, 2, 3; // error C2059: 構文エラー : '定数' return 0…
諸事情で、google さんが提供してる Protocol buffers を利用しています。さて、VC2008EEで "#include <crtdbg.h>" しつつ作業してたら、終了後にリーク報告受けちゃいました。こういう場合は当然自分のコードを疑うわけですけれども(ぉ)、"int main(){ …
mixi から はてなへようこそ!(ぉ > id:NetSeed さん先日、はてなに別荘を創られたというお話をお聞きし、速RSSを購読しておいたおかげでスグに記事が読めましたよ! その昔私もやりました さて、記事を見させて頂いて、危険なコードを発見してしまったの…
ソース #include <windows.h> #include <stdio.h> class A { public: A(int i = 0) : m(i) { puts("コンストラクタかしら"); } ~A() { puts("デストラクタかしら"); } A& operator = (const A& a) { this->m = a.m; puts("operator = かしら"); return *this; } int m; }; int ma</stdio.h></windows.h>…
std::istringstream istr("AAAAAAAA99999999"); // 16進数で読み込みたい unsigned int nHi, nLow; istr >> std::hex; までは良かったけれど、"AAAAAAAA" と "99999999" で分割して読み込めなかった。orzsetw でいけると思ったんだがなぁ……。マニピュレータ…
/* Cね */ char *funcA(), *funcB(int), *funcC(char*, char*); int main() { funcA(); funcB(169); funcC("kanaria", "kashira"); return 0; } …なるほど。 でも、良い子は真似しちゃ だ め よ
C++相談室 part55http://pc10.2ch.net/test/read.cgi/tech/1164951094/657- 657 名前: デフォルトの名無しさん[sage] 投稿日: 2007/01/25(木) 21:27:33 クラス内のスタティック関数を ポリモルフィズムしたいのですが どうすればいいですか? 660 名前: …
諸事情で、所有権付 auto_ptr が欲しくなったので、yaneSDK 2nd の auto_ptr をベースにして class B{}; class D : public B{}; auto_ptr<D> d(new D); auto_ptr<B> b1(d); auto_ptr<B> b2(b1) 見たいなのが出来るようにちょいと手を入れてみたわけです。(基底クラス</b></b></d>…
class A { public: A(int n){}; }; int main() { A a[3] = {1, 2, 3}; return 0; } 記憶の奥底で、できた…よなぁ…。 なんて思いつつコンパイルしてみたら本当にできてちょっとびっくり。^^;ぱっと見で微妙に見づらい感があるかもしれませんが…1つの有効…
諸事情で template<typename IT, typename FN> typename FN::result_type my_for_each(IT itBegin, IT itEnd, FN fn) { // ごにょごにょ } こんな事がやりたくなったのですよ。std::mem_fun / boost::bind が fn に投げられる時は、FN に result_type が typedef されているので問題な</typename>…
vector なり list なりにオブジェクトをガンガン push_back していきますが、そのオブジェクトが破棄される時順番で破棄されるんだろうかと。 個人的には、末尾の要素から削除されると嬉しいんだけどなー とか思っているんですが…実験してみました。 コンパ…
おすすめのソースは? | スラド デベロッパーboostのコード読むのと、どっちが幸せだろう…
……また VS2005 ぉー? もー… orz UNICODE ビルドを行ってますので、cout は利用せずに wcout を利用する事になります。 で、日本語文字列が上手く出力されないという問題に遭遇してまして「あー、"japanese" に locale 設定せにゃあきませんか」と気づいた訳…
はじめに 7/10追記 int anArray[9]; int* p1 = &anArray[9]; // ダメ int* p2 = anArray + ARRAY_SIZE(anArray); // OK との事です。ダイレクトに終端のアドレス取るのではなくて、配列の先頭からn番目とするのが正しいようです。というわけで、下の記事は間…
ようやくインストールが終わったのかしら〜…相変わらず Visual Studio はセットアップに時間がかかるのぅ…。 まぁ、.NET Frameworks 2.0 とかインストールしなきゃならんわけですから、仕方ないですけどね。 さて、VS2005 が入ったということは! 薔薇乙女メ…
abs(-4); を*1 Release ビルドしたところで、ちっとも定数になってくれなくてショック。 いやまぁ、実行時に評価されるようなコード吐かれたところで数ステップ増えるだけなので、気にするようなレベルじゃないんですが…… いやでもなんか悔しいよね。(ぉ 仕…
昨日のビルドできない問題ですが、結論としては boost::lambda::_1 と bind の _1 が被ってるとみなされることによる問題のようでした。つまり、VCのコンパイラ(プリコンパイル済みヘッダーを作る段階?)が悪いような気がします。それぞれの _1 は、違う名…
同じソース、同じ boost のバージョン、同じ WTL のバージョン、同じコンパイラ*1 を利用しているにもかかわらず、研究室・サブマシンでビルドが通るコードが メインマシンで通らないとかマジ勘弁してください。 。・゚・(ノД`)・゚・。 いやほんま意味不明…。対処の…
相性悪いよなぁ…と強く思う今日この頃。^^;例えば、文字列を扱うのに std::basic_string<TCHAR> を利用したとします。で、Win32API で「文字列へのポインタ」と「文字数」の2つの引数を含む関数 -- 例えば TextOut 等を呼び出すコードを描いてみるわけですよ。 </tchar>…
プリコンパイル済みヘッダーで #include して次のコードをビルドしたのですよ。 size_t CMailCheckResult::GetTotalReceiveMailCount() { return std::accumulate(m_stlFieldList.begin(), m_stlFieldList.end(), static_cast<size_t>(0), boost::lambda::_1 + boost</size_t>…
bool char unsigned char // signed char // これは必要なのかなぁ…^^; // wchar_t short unsigned short int unsigned int long unsigned long __int64 unsigned __int64 float double long double LPCTSTR // const char* // const wchar_t* const void*…
Winnyの脆弱性が話題になってますが、こちら に、こんなことが書いてありました。 この脆弱性は、strcpy() で発生します。 やっちまったよ47氏!(涙 かなり前から strcpy や sprintf などは、バッファオーバーランする可能性が強いから使うなとか言われて…
"->" は "アロー演算子" と呼んでますが "->*" ってなんて呼べば良いんだろう…。 ".*" も… やじるしコメ演算子, ドットコメ演算子 で良いかしら〜?(ぉ
ちょぃと operator -> のオーバーロードする機会があったのですが、ふと「operator ->* ってのもオーバーロードできたんだよなぁ…」ということを思い出してみたわけです。 今まで ->* はオーバーロードした事無い為、良い機会だからオーバーロードしてみよう…
一個上のエントリーで crt のコードとか漁ってた時に見つけたコード。 #define IS_2_POW_N(X) (((X)&(X-1)) == 0) う、美しい!! これは思いつかなかった……んだけど、まず、2^n の値であるかを確認する場面に遭遇したことがない事の気づいた俺。
pow(10, -1);上記コードの戻り値として、Visual C++ 6.0 などの以前のバージョンの CRT では "0.1" が返りますが、Visual C++ .NET 2003 の CRT では、"0" が返ります。 との事。確かに、math.h 515行目近辺にこんなコードがありますねぇ。 template inline …
某匿名掲示板の過去ログを調べてみると…推薦図書 /必読書のためのスレッドPART29 より 921 名前: デフォルトの名無しさん 2006/03/06(月) 14:26:28 アスキーのアジソンウェスレイシリーズが軒並み絶版になってる余寒 c++のバイブルも重版未定で在庫限りっぽ…