gpt4 book ai didi

c++ - 使用 C++ 模板封装简单类型

转载 作者:太空狗 更新时间:2023-10-29 23:48:27 25 4
gpt4 key购买 nike

我希望为 C++ 中的所有简单类型添加功能。

我想编写一个模板化类,它将要封装的类型作为模板参数,然后定义所有运算符,以便封装类的工作方式与它封装的简单类型完全相同。

像这样:

template <typename _SimpleType_>
class Attribute
{
public:
Attribute(_SimpleType_ value){ m_value = value; }
~Attribute(){}

// Cast
operator _SimpleType_() { return(m_value); }

// Comparisons
bool operator==(const a& other) const { return a == m_value; }
etc...

private:
_SimpleType_ m_value;
}

// Use like:
Attribute<int> i = 20;

while(i)
{
if((i & 0xF) == 0)
{
i >>= 2;
}

i--;
} etc...

问题是我确信有大量的细微差别需要处理并且需要编写专门的模板操作符;那么有没有什么地方已经完成了,所以我可以用它来代替?

Boost 太大太复杂,无法放入我的项目中,但如果那里有这样的类,我可以查看它以获取指示 - 如果有,它的名字是什么?

最佳答案

它非常简单,即使很乏味 - 您只需实现标准类型支持的所有运算符,以及强制转换运算符不够用的地方。

不过我不得不问,你究竟为什么要这样做?

关于c++ - 使用 C++ 模板封装简单类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/539459/

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