@@ -28,6 +28,8 @@ const char hitOldName[] = "hit_old";
2828const char localName[] = " local" ;
2929const char remoteName[] = " remote" ;
3030const char hitmName[] = " hitm" ;
31+ const char backinvName[] = " backinv" ;
32+
3133
3234// 基础计数器模板类
3335template <const char * Name>
@@ -78,10 +80,8 @@ struct std::formatter<AtomicCounter<Name>> {
7880 }
7981
8082 template <typename FormatContext>
81- constexpr auto format (const AtomicCounter<Name>& counter, FormatContext& ctx) const
82- -> decltype(ctx.out())
83- {
84- // 直接使用format_to避免嵌套std::format调用
83+ auto format (const AtomicCounter<Name>& counter, FormatContext& ctx) const -> decltype(ctx.out()) {
84+ // 简化formatter实现,避免嵌套std::format调用
8585 return format_to (ctx.out (), " {}" , counter.get ());
8686 }
8787};
@@ -193,6 +193,7 @@ class CXLCounter {
193193 AtomicCounter<localName> local;
194194 AtomicCounter<remoteName> remote;
195195 AtomicCounter<hitmName> hitm;
196+ AtomicCounter<backinvName> backinv;
196197
197198 constexpr CXLCounter () noexcept = default;
198199
@@ -210,6 +211,7 @@ class CXLCounter {
210211 constexpr void inc_local () noexcept { local.increment (); }
211212 constexpr void inc_remote () noexcept { remote.increment (); }
212213 constexpr void inc_hitm () noexcept { hitm.increment (); }
214+ constexpr void inc_backinv () noexcept { backinv.increment (); }
213215
214216 // 便捷方法:计算本地命中率
215217 constexpr double local_hit_ratio () const noexcept {
0 commit comments