stringのvectorをスペースで区切って1つのstringにする


TLTR

ostringstreamとは

<<で渡された値を内部に持っているstringに追加していく。

ostream_iteratorとは

=で渡された値をコンストラクタで渡された出力ストリームに追加していく。
コンストラクタの2番めの引数はデリミタを指定する。=でストリームに追加したあとにこの値も追加する。デフォルトでは何も追加しない。
++演算では何もしない。これにより下記のcopyで役に立つ。

上のコードは以下のようにコンソールに出力される。

copyとは

第一引数と第二引数のイテレータで入力範囲を指定する。
第三引数で出力イテレータを指定する。

入力出力とも++で一個ずつずらしていって=でコピーする。

ostream_iteratorの++は何もしないで=で値をストリームに追加する。(最初のコード参照)

VS2019のC++でstdのソースコードでバッグをする

/JMCを削除

デバッグモードでのデフォルトのコンパイルフラグに/JMCが追加されていて、これが有効になっているとstdのソースコードにステップ・インできない。よってこれを無効にする(以下の画像を参照)
/JMCを無効にする
デバッグオプションのJust My Codeはモジュールごとに区分けしていると思うので、どうでもいいはず。

Win32APIのコールバック

コールバック関数(これは自分で定義したもの)のデバッグを効率良く行うには/JMCを有効にしたほうが良い。このフラグを有効にすると、コールバックを引数にするAPIを呼んだときに、そのコールバックにステップ・インしてくれる。