22:55

std::allocator::max_size関数は、一度に確保できる要素の最大数を返すのがC++の仕様だと思ってたけど、VC++2010の実装ではそうなってないような。一度にひとつの要素しか確保できない独自アロケータをstd::mapで使うと、実行時にエラーが出て困り中。

23:03

VC++2010に添付されてる標準ライブラリのstd::map::max_size()の返り値は、std::map::get_allocator().max_size()の返り値をそのまま使ってた。これってC++の仕様と合ってない気がするんだけどなあ。

23:51

allocator Class | Microsoft Docs

std::allocator::max_size関数の返り値は、C++の仕様だと「allocate関数に指定できるオブジェクト数の最大値」。ところがVC++2010では「メモリに存在できるオブジェクトの最大数」として実装されてるっぽい。

23:59

C++ - Projects

インターネット上で自由に閲覧できるC++の仕様書があると便利いいんだけどなー。JIS公式サイトにあるPDFは、自分のPC環境だと閲覧できず。英語になるけど、C++11の2011.02.28版ドラフト仕様書はありました。