C++ ICU 库如何决定缓存哪些日历对象?

How does the C++ ICU library decide which Calendar objects to cache?

我们使用 C++ ICU 库的 Calendar::createInstance(...) 函数来获取指向日历对象的指针。

使用相同的参数对 Calendar::createInstance(...) 进行多次相同的调用会导致

一个。 ICU 每次都创建一个全新的日历对象或

b。库是否会在第二次和后续调用中使用它的内部缓存和 return 此日历的现有实例?

API 除了提到库可以选择通过这些仅供内部使用的函数执行缓存外,似乎没有提供具体的缓存细节:

一个。 Calendar::registerFactory(...)

b。 Calendar::makeInstance(...)

有人可以阐明 C++ ICU 库如何缓存日历对象吗?

您可以在这里查看源代码:http://source.icu-project.org/repos/icu/icu/tags/release-58-1/source/i18n/calendar.cpp

它最终使用 UnifiedCache::_get() 在这里:http://source.icu-project.org/repos/icu/icu/tags/release-58-1/source/common/unifiedcache.cpp