gpt4 book ai didi

C++ 使用一种方法且没有警告地实现不同类型赋值的优雅方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:01:37 24 4
gpt4 key购买 nike

我必须实现基本相同的功能,但尺寸不同。具体来说,它类似于...

type& operator=(unsigned int);
type& operator=(unsigned long int);
type& operator=(unsigned long long int);
type& operator=(int);
type& operator=(long int);
type& operator=(long long int);
type& operator=(short int);
//so on and so forth...

他们必须做完全相同的事情......(除了我应该考虑不同的大小),主要思想是“如果类型是最广泛的使用任务的代码......否则执行类型转换和执行代码”。是否可以仅使用一种方法来避免所有这些重复代码? (我只是不想让编译器在我编译时给我一些警告...)。

谢谢

最佳答案

这适用于所有整数类型:

template<
typename T,
typename = std::enable_if_t<std::is_integral<T>::value>
>
type& operator= (T);

如果你想依赖于大小,可以简单地使用 sizeof(T) 获得。您可以将其与您想要的最大尺寸进行比较。

如果您想要两个单独的函数,您还需要将该子句放入其中并使用某种静态全部。

关于C++ 使用一种方法且没有警告地实现不同类型赋值的优雅方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32737207/

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