OSDN Git Service

[feature] 各種構造体のPOD型としての扱いをやめる #564
authorHabu <habu1010+github@gmail.com>
Sat, 20 Mar 2021 06:56:39 +0000 (15:56 +0900)
committerHabu <habu1010+github@gmail.com>
Sat, 20 Mar 2021 06:56:39 +0000 (15:56 +0900)
commit9d43dcf175ec2083d722bf84c79ee64070fe58ff
tree2adb42a1f0021a564d67266022b7ce4160fc14d2
parent2e79fbf5ebb361b00f1dcd05e77cf801736d5cfd
[feature] 各種構造体のPOD型としての扱いをやめる #564

コード修正量が少なくて済むよう、z-virt.h で定義されている
メモリ操作系マクロで呼ばれる最終的な実装を修正する。
修正方法は #564 に従う。
但し、全ての構造体の定義で初期値を与えるようにするのは
手間がかかるので、SFINAEによりトリビアルコピーが可能か
どうかで分岐し、トリビアルコピーが可能であれば
memsetでのゼロクリアやmemcpyでのコピーを行う。
したがって、std::vectorやstd::string等、トリビアルコピーが
不可能なクラスオブジェクトを持たせない構造体は
初期値を与える必要はなく現状のままの定義で使用できる。
src/autopick/autopick-util.cpp
src/main/game-data-initializer.cpp
src/main/info-initializer.cpp
src/term/z-virt.h