gpt4 book ai didi

c++ - typedef 类型的单独模板

转载 作者:行者123 更新时间:2023-11-27 23:21:43 28 4
gpt4 key购买 nike

我创建了一个模板类,它根据数据类型输出值,即 long 以带符号整数(十进制)的形式输出,而 RESULT 以十六进制格式输出。我将 RESULT 定义为:

typdef long RESULT.

这不能正常工作,因为 RESULT 被当作一个 longRESULT 的输出例程永远不会被调用(而是 long 的例程被调用)。有解决办法吗?

最佳答案

由于给定的原因,您想要的不会起作用。

如何只添加一个 Function 对象来根据需要格式化输出。

class A {
template< typename T>
std::string output(long val) {return T(val)}
}

struct decimal {
std::string operator()(long val) {//return decimal}
}

struct hex {
std::string operator()(long val) {//return hex}
}

示例用例:

A a;
cout << a.output<decimal>(10) << endl;
cout << a.output<hex>(10) << endl;

关于c++ - typedef 类型的单独模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12431749/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com