下面是一个C++自定义原子类型的例子:

#include <atomic>
#include <iostream>

// 自定义原子类型
class MyAtomicType {
public:
    MyAtomicType() : value(0) {}

    // 自定义原子操作
    void Increment() {
        ++value;
    }

    void Decrement() {
        --value;
    }

    int GetValue() const {
        return value;
    }

private:
    int value;
};

int main() {
    std::atomic<MyAtomicType> atomicValue;

    // 使用自定义原子类型进行操作
    atomicValue.store(MyAtomicType());
    atomicValue.load().Increment();
    atomicValue.load().Increment();

    std::cout << "Value: " << atomicValue.load().GetValue() << std::endl;

    return 0;
}

在上面的例子中,我们自定义了一个名为MyAtomicType的原子类型。它具有一个私有成员变量value表示值,并且提供了自定义的原子操作Increment()Decrement()来对值进行递增和递减。此外,还有一个GetValue()函数用于获取值。

main()函数中,我们创建了一个std::atomic<MyAtomicType>类型的原子变量atomicValue。我们通过store()函数将一个默认构造的MyAtomicType对象存储到原子变量中。然后,我们使用load()函数获取原子变量的值,并通过连续调用Increment()函数两次对值进行递增。最后,我们使用GetValue()函数获取并输出原子变量的值。

请注意,为了确保线程安全,我们应该在多线程环境中使用原子类型。这个例子只是为了展示如何自定义原子类型,并且在单线程环境中使用它。

c++举一个自定义原子类型的例子

原文地址: https://www.cveoy.top/t/topic/i8H2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录