plɹoM ollǝH

ǝldɯᴉs puɐ llɐɯs ʇᴉ dǝǝʞ

clang-formatをVisual Studioで

Visual Studio2017で対応されてるのでAStyleから乗り換え
実行されるタイミングがよくわからんので編集中のコード整形に加えて
ビルドイベントで全ソースなめてフォーマットするイベントを追加しておく

1. Windowsバイナリをインストール

Pre-Built BinariesからWindows (64-bit)を選択してDL PATHに追加チェックいれてインストールしておく LLVM Download Page

2.Visual Studioの設定

ツール⇒オプション⇒テキスト エディタ―⇒C/C++⇒書式設定⇒clang-formatサポートを有効にする

3.プロジェクトに.clang-formatファイルを追加

プロジェクト⇒新しい項目の追加⇒Visual C++⇒書式設定⇒.clang-format

4.ビルドイベント設定

プロジェクト⇒プロパティ⇒ビルドイベント⇒ビルド前のイベント

clang-format -style=file -i *.cpp *.hpp

vcプロジェクトをコピってアーカイブ(Win)

1. 7zipをインストールしておく

https://www.7-zip.org/

2. 除外するファイルのリストを作っておく

.git\
.bin\
.tmp\
.vs\
.orig
.vcxproj.user

3. コピーしてアーカイブするbatを書く

xcopy /S /E /H /R /Y /I /EXCLUDE:copyignore.txt mylib .tmp\mylib
cd .tmp
"C:\Program Files\7-Zip\7z.exe" a hoge\mylib.zip mylib

VS2017ではunionの暗黙デフォルトコンストラクタは作られない

error C2280: 'hoge::hoge(void)': 削除された関数を参照しようとしています

https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/compiler-error-c2280?view=vs-2017#example-variant-and-volatile-members

なるほどね

C++ Visual Studioビルド時スタイライズ&スタイルチェック

Visual Studio2017でclang-formatが使えるようになってた
dungeonneko.hatenablog.com

インストールするもの

AStyle

Win版を落としてbinフォルダのAStyle.exeを適当な場所にコピー https://sourceforge.net/projects/astyle/files/

cpplint

pip install cpplint

どちらにもパスを通しておいたほうが楽

VCプロジェクト設定

ビルドイベント -> ビルド前のイベント -> コマンドライン

astyle --style=google --recursive "$(ProjectDir)\*.cpp,*.hpp,*.h"
cpplint --output=vs7 --recursive "$(ProjectDir)"

基本はこんな感じ。astyleで文字数改行オプションが効かなかったりするのでuncrustifyを試してみたいと思う。