現状Visual Studio 2013でC++のテンプレートを書くと、<>の間にスペースが自動挿入されます。挿入されないよう設定を変えたいのですが、
Options→Text Editer→C/C++→Formating→Spacingに該当する項目がなく困っています。
スペースの自動挿入を止める方法を教えてください。
VS2013の設定でC++テンプレートのスペース自動挿入を止めたい。
Re: VS2013の設定でC++テンプレートのスペース自動挿入を止めたい。
C++03 ではテンプレートの括弧がシフト演算子に誤認されるという仕様上の問題があります。
おそらくこれを防止するための整形でしょう。
http://dev.activebasic.com/egtra/2011/08/12/389/
VisualStudio2013 は C++11 に (完全ではありませんが) 対応しているため、
std::vector<std::vector<T>>;
と書いてもコンパイルエラーになりません。
しかしこのコードは、例えば VisualStudio2008 でコンパイルすることはできません。
すこし気持ち悪い整形ですが、移植性を高めるという意味で従っておくのが無難ではないでしょうか。
おそらくこれを防止するための整形でしょう。
http://dev.activebasic.com/egtra/2011/08/12/389/
VisualStudio2013 は C++11 に (完全ではありませんが) 対応しているため、
std::vector<std::vector<T>>;
と書いてもコンパイルエラーになりません。
しかしこのコードは、例えば VisualStudio2008 でコンパイルすることはできません。
すこし気持ち悪い整形ですが、移植性を高めるという意味で従っておくのが無難ではないでしょうか。
Re: VS2013の設定でC++テンプレートのスペース自動挿入を止めたい。
書式設定の全般の項目のチェックを外せば、『自動で』整形することは止めることができます。
ただし止められるのは『自動で』の部分だけなので、手動で該当箇所を整形すると変更されてしまいます。
ただし止められるのは『自動で』の部分だけなので、手動で該当箇所を整形すると変更されてしまいます。
Re: VS2013の設定でC++テンプレートのスペース自動挿入を止めたい。
lriki さんが書きました:VisualStudio2013 は C++11 に (完全ではありませんが) 対応しているため、
std::vector<std::vector<T>>;
と書いてもコンパイルエラーになりません。
しかしこのコードは、例えば VisualStudio2008 でコンパイルすることはできません。
すこし気持ち悪い整形ですが、移植性を高めるという意味で従っておくのが無難ではないでしょうか。
Visual Studioの設定では変更できないのですね。ISLe() さんが書きました: ただし止められるのは『自動で』の部分だけなので、手動で該当箇所を整形すると変更されてしまいます。
古いコンパイラを使う予定はありませんが、移植性が高まる利点もあるなら気にしないように使っていきます。
お二方とも回答ありがとうございました。
Re: VS2013の設定でC++テンプレートのスペース自動挿入を止めたい。
昨日Community 2015 RCをインストールしたので試してみました。
結果、空白が挿入されるこはありませんでした。
逆に空白を入れて詰められることもありません。
2013はUpdate 5のCTP2およびRCでは修正されているらしいです。
結果、空白が挿入されるこはありませんでした。
逆に空白を入れて詰められることもありません。
2013はUpdate 5のCTP2およびRCでは修正されているらしいです。