web-dev-qa-db-ja.com

これらの長いC ++行をきれいに分割する方法は?

私は最初の大きなC++プロジェクトに参加していて、本当に長い行があることに気づきました。私の目標は、それらを79列に分割することですが、これをきちんと行う方法がわかりません。次のような改行のガイドラインはありますか?

VectorHistogram::VectorHistogram(size_t bins, size_t cache) : bins(std::vector<double>(bins)), cache(std::min(cache, MAX_CACHE_ENTRIES)) {

または

VectorHistogram position_histogram {settings.position_hist_bins, settings.time_sites * settings.iterations};

または

MetropolisDriver::MetropolisDriver(Settings settings) : settings(settings), system(HarmonicOscillator {settings.time_step, settings.mass, settings.mu_squared}), trajectory(ListQuantity {settings.time_sites}), ma(MetropolisAlgorithm {trajectory, system, settings.position_seed, settings.accept_seed}) {
7
Martin Ueding

私はそれらを壊して、各行がスーパークラスコンストラクターの呼び出しや式などの異なる懸念を伝えているようにします。これは79文字ではないかもしれませんが、現代のワイドスクリーン、高解像度モニターでは、本当にそれが本当に必要ですか?

できる限りIDEでフォーマットしてください。他のバージョンよりも優れているものもあります。たとえば、Eclipseは奇妙な場所で式を壊すのが好きであることがわかりました。ときどき(まれに)手動フォーマットに頼るために、私は上記の方法でコードを壊そうとします。

とにかく、これが私があなたの質問でコードをフォーマットする方法です:

VectorHistogram::VectorHistogram(size_t bins, size_t cache)
    : bins(std::vector<double>(bins)),
      cache(std::min(cache, MAX_CACHE_ENTRIES)) {

VectorHistogram position_histogram {
  settings.position_hist_bins, settings.time_sites * settings.iterations
};

MetropolisDriver::MetropolisDriver(Settings settings)
    : settings(settings),
      system(HarmonicOscillator {settings.time_step, settings.mass, settings.mu_squared}),
      trajectory(ListQuantity {settings.time_sites}),
      ma(MetropolisAlgorithm {trajectory, system, settings.position_seed, settings.accept_seed}) {
8
user22815