是国际货币基金组织
Is moneypunct Object International?
假设我有一个模板化的函数,它接受一个moneypunct
:
template <typename T>
void foo(const T& bar);
我可以使用typename T:char_type
来确定第一个moneypunct
模板参数(无论我是在处理moneypunct<char>
还是moneypunct<wchar_t>
。)但是我如何确定第二个模板参数是true
还是false
(moneypunct<char, true>
或moneypunct<char, false>
?)
是实现这一目标的唯一方法是将我的函数重新设计为:
template <typename CharT, typename International = false>
void foo(const moneypunct<CharT, International>& bar);
如果你只想要一个moneypunct
,这绝对是最好的,最清晰的解决方案:
template <typename CharT, typename International = false>
void foo(const moneypunct<CharT, International>& bar);
然而,你仍然可以用一个类型trait从原始模板中确定两个模板参数:
template <typename> struct isInternational;
template <typename CharT, bool International>
struct isInternational<std::moneypunct<CharT, International>>
: std::integral_constant<bool, International>
{ }
可以使用:
template <typename T>
void foo(const T& bar) {
// this won't compile if T is not a std::moneypunct
std::cout << isInternational<T>::value << std::endl;
}
相关文章:
- 我正在尝试使用 c++ 创建一个货币转换程序,我不知道如何继续
- C++嵌套if语句,基本货币交换
- 将所有 URL 组织在类中的一个位置
- 如何在 ECS 模型中组织实体?
- 如何根据两个因素组织向量:id 和数量?(C++)
- 与Visual Studios(c ++)同步时如何组织github存储库?
- 什么是非营利组织???我的问题是我不明白为什么有人会使用它
- 如何组织 git 工作流以修复错误并同时引入新功能
- 如何提取由 unordered_map::emplace 重新调整的货币对的值?
- 如何组织从提升日志接收器进行线程安全读取?
- C++如何组织(管理)第三方库
- 如何在github中组织依赖C++的项目
- 使用具有C++继承的 CMake 时,我应该如何组织我的目录结构?
- 组织项目的多平台和易于使用的文件
- C++组织函数流
- 使用级别访问的 C++ 类组织
- 使用 C++ Boost.Test 组织单元测试?
- 什么时候可以安全地发布国际货币基金组织及其数据
- 是国际货币基金组织
- 如何复制国际货币基金组织的大量对象