gpt4 book ai didi

c++ - C++ 中是否可以使用模板化文字?

转载 作者:搜寻专家 更新时间:2023-10-31 01:27:09 24 4
gpt4 key购买 nike

我想为模板类创建一个文字,这在 C++ 中可行吗?

我想做这样的事情:

template<typename T> class A
{
A(T x);
};

template<typename T>
A<T> operator"" _d(unsigned long long int x_double)
{
return A<T>(2 * x_double);
}

A<int> a = 4_d;

如果我选择它应该总是返回,我可以获得一个要编译的文字,例如 A<short> , 但是否有可能以任何方式让编译器推迟类型 T受让人输入什么?

最佳答案

不,没有这样的事情;唯一的模板文字是字符串。但是你想要的可以通过包装器类型实现:

struct ConvertToA {
unsigned long long int init;
template <typename T>
operator A<T>() { return {init}; }
};

ConvertToA operator"" _d(unsigned long long int x_double)
{
return {2 * x_double};
}

关于c++ - C++ 中是否可以使用模板化文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53961032/

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