標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

C++

古い VC++ でコンパイルエラーになったが、gcc 11.2.0 だと普通に動いてしまった unique\_ptr を使ったコード

C++

map から map へ要素を移動するのに、unique_ptr を使いたかったが、当時使っていた VC++ 2010 か 20151 では、コンパイルエラーになってしまった。 その時は結局、shared_ptr を使って回避した。 今、gcc 11.2.0 で試してみると問題は再現しない。コンパイ…

メンバーにポインタがなければ、コピーコンストラクタは要らないのか?

C++

#include <cstdio> class Bar { public: Bar(){ puts("Bar()"); } Bar( const Bar & ){ puts("Bar(const Bar &)"); } ~Bar(){ puts("~Bar()"); } }; // no copy-constructor class class Foo { Bar bar1; }; int main() { Foo foo1; Foo foo2(foo1); return 0; } ク</cstdio>…

(続々) std::vector / std::set 両方からデータを取れる関数をあまりテンプレートにしたくない

C++

(半日も経ってませんが、(続) std::vector / std::set 両方からデータを取れる関数をあまりテンプレートにしたくない - 標準愚痴出力からの続きです) 前回 std::function を使って、コールバック関数を関数オブジェクトにし、呼び出しを簡素にしてみたわけ…

(続) std::vector / std::set 両方からデータを取れる関数をあまりテンプレートにしたくない

C++

前回:std::vector / std::set 両方からデータを取れる関数をあまりテンプレートにしたくない - 標準愚痴出力 次回:(続々) std::vector / std::set 両方からデータを取れる関数をあまりテンプレートにしたくない - 標準愚痴出力 次々回:hymkor/study-cpp-e…

std::vector / std::set 両方からデータを取れる関数をあまりテンプレートにしたくない

C++

というような主旨のことを述べたら、boost::any_range をオススメされました。 が、弊社では外部ライブラリの導入がめんどくさいので、boost といえど、あまり使いたくない(未だに Visual Studio 2010 がメインに使われてるようなところだからね) とすると…

std::vector の emplace_back が使えない状況で、軽い push を検討する

C++

Visual Studio 2010 では std::vector の emplace_back がバグっているという話なので、負荷の軽い方法を検討。 でも、検証プログラムのためにわざわざソリューション作るのもめんどいから、gcc で検証してみよう(おい #include <cstdio> #include <string> #include <vector> class</vector></string></cstdio>…