{
  AccessModifierOffset: -4,
  AlignAfterOpenBracket: Align,
  AlignEscapedNewlinesLeft: true,
  AlignTrailingComments: true,
  AllowAllParametersOfDeclarationOnNextLine: false,
  AllowShortBlocksOnASingleLine: true,
  AllowShortCaseLabelsOnASingleLine: false,
  AllowShortFunctionsOnASingleLine: None,
  AllowShortIfStatementsOnASingleLine: false,
  AllowShortLoopsOnASingleLine: false,
  AlwaysBreakBeforeMultilineStrings: true,
  AlwaysBreakAfterReturnType: None,
  AlwaysBreakTemplateDeclarations: true,
  BinPackArguments: false,
  BinPackParameters: true,
  BraceWrapping: {
    AfterCaseLabel: true,
    AfterClass: true,
    AfterControlStatement: true,
    AfterEnum: true,
    AfterFunction: true,
    AfterNamespace: true,
    AfterStruct: true,
    AfterUnion: true,
    AfterExternBlock: true,
    BeforeCatch: true,
    BeforeElse: true,
    IndentBraces: false,
    SplitEmptyFunction: false,
    SplitEmptyRecord: false,
    SplitEmptyNamespace: true,
  },
  BreakBeforeBinaryOperators: false,
  BreakBeforeBraces: Custom,
  BreakBeforeTernaryOperators: true,
  BreakConstructorInitializers: BeforeComma,
  BreakInheritanceList: BeforeComma,
  ColumnLimit: 90,
  ConstructorInitializerAllOnOneLineOrOnePerLine: false,
  ConstructorInitializerIndentWidth: 2,
  ContinuationIndentWidth: 4,
  Cpp11BracedListStyle: true,
  DerivePointerAlignment: false,
  ExperimentalAutoDetectBinPacking: false,
  ForEachMacros: ['RANGES_FOR',],
  IncludeBlocks: Regroup,
  IncludeCategories: [
    { Regex:           '^<range/v3/detail/prologue.hpp',
      Priority:        8},
    { Regex:           '^<range/v3/range_fwd.hpp',
      Priority:        6},
    { Regex:           '^<range/v3',
      Priority:        7},
    { Regex:           '^<concepts/',
      Priority:        5},
    { Regex:           '^<meta/',
      Priority:        4},
    { Regex:           '^<std/.*>$',
      Priority:        3},
    { Regex:           '^<benchmark/.*>$',
      Priority:        2},
    { Regex:           '^<.*>$',
      Priority:        1},
  ],
  IndentCaseLabels: false,
  IndentFunctionDeclarationAfterType: false,
  IndentWidth: 4,
  KeepEmptyLinesAtTheStartOfBlocks: true,
  Language: Cpp,
  MaxEmptyLinesToKeep: 1,
  MacroBlockBegin: "^(RANGES|META)_BEGIN_NAMESPACE_(STD|VERSION|CONTAINER)|RANGES_FUNC_BEGIN$",
  MacroBlockEnd: "^(RANGES|META)_END_NAMESPACE_(STD|VERSION|CONTAINER)|RANGES_FUNC_END$",
  NamespaceIndentation: All,
  PenaltyBreakBeforeFirstCallParameter: 10,
  PenaltyReturnTypeOnItsOwnLine: 1000,
  PointerAlignment: Middle,
  SpaceAfterControlStatementKeyword: false,
  SpaceAfterTemplateKeyword: false,
  SpaceBeforeAssignmentOperators: true,
  SpaceBeforeParens: Never,
  SpaceInEmptyParentheses: false,
  SpacesBeforeTrailingComments: 1,
  SpacesInAngles: false,
  SpacesInCStyleCastParentheses: false,
  SpacesInParentheses: false,
  Standard: Cpp11,
  StatementMacros: [
    'RANGES_INLINE_VARIABLE',
    'RANGES_DEFINE_CPO',
    'CPP_member',
    'CPP_broken_friend_member',
  ],
  TabWidth: 4,
  UseTab: Never,
}
