草庐IT

atomic-long

全部标签

c++ - 64 位 C++ 中的 sizeof(long)

我已经下载了MinGW-64,所以我现在可以使用g++4.7.0(实验性)为Windows7编译64位程序。但是下面一行:cout打印48,而不是88。g++4.6.0的文档说:The64-bitenvironmentsetsintto32bitsandlongandpointerto64bits有人知道为什么sizeof(long)不是8吗?已编辑添加:我感到困惑的原因是用于64位Windows的g++4.7.0(还)不是GNUCompilerCollection的官方部分。它是第一个具有32位long的64位版本,因此文档根本不适用于它。确实,如果您访问relevantwebpag

c++ - 64 位 C++ 中的 sizeof(long)

我已经下载了MinGW-64,所以我现在可以使用g++4.7.0(实验性)为Windows7编译64位程序。但是下面一行:cout打印48,而不是88。g++4.6.0的文档说:The64-bitenvironmentsetsintto32bitsandlongandpointerto64bits有人知道为什么sizeof(long)不是8吗?已编辑添加:我感到困惑的原因是用于64位Windows的g++4.7.0(还)不是GNUCompilerCollection的官方部分。它是第一个具有32位long的64位版本,因此文档根本不适用于它。确实,如果您访问relevantwebpag

c++ - 具有 std::atomic 成员变量的类的复制构造函数/赋值运算符出错

我有一个像下面这样的类(class)。#includestaticconstlongmyValue=0;classSequence{public:Sequence(longinitial_value=myValue):value_(initial_value){}private:std::atomicvalue_;};intmain(){SequencefirstSequence;SequencesecondSequence=firstSequence;return0;}我收到这样的编译错误,test.cpp:21:36:error:useofdeletedfunction‘Seque

c++ - 具有 std::atomic 成员变量的类的复制构造函数/赋值运算符出错

我有一个像下面这样的类(class)。#includestaticconstlongmyValue=0;classSequence{public:Sequence(longinitial_value=myValue):value_(initial_value){}private:std::atomicvalue_;};intmain(){SequencefirstSequence;SequencesecondSequence=firstSequence;return0;}我收到这样的编译错误,test.cpp:21:36:error:useofdeletedfunction‘Seque

c++ - std::shared_ptr 和 std::experimental::atomic_shared_ptr 有什么区别?

我阅读了followingAntonyWilliams的文章,据我了解,除了std::experimental::atomic_shared_ptr中std::shared_ptr中的原子共享计数之外指向共享对象的实际指针也是原子的?但是当我读到安东尼的书中关于C++Concurrency的lock_free_stack的引用计数版本时在我看来,同样适用于std::shared_ptr,因为应用了std::atomic_load、std::atomic_compare_exchnage_weak等函数到std::shared_ptr的实例。templateclasslock_free_

c++ - std::shared_ptr 和 std::experimental::atomic_shared_ptr 有什么区别?

我阅读了followingAntonyWilliams的文章,据我了解,除了std::experimental::atomic_shared_ptr中std::shared_ptr中的原子共享计数之外指向共享对象的实际指针也是原子的?但是当我读到安东尼的书中关于C++Concurrency的lock_free_stack的引用计数版本时在我看来,同样适用于std::shared_ptr,因为应用了std::atomic_load、std::atomic_compare_exchnage_weak等函数到std::shared_ptr的实例。templateclasslock_free_

c++ - "atom"数据类型是什么?

我在Win32api中遇到了ATOM类型在AcrobatAPI中还有ASAtom.据我所知,原子是哈希表的键,通常是字符串,以实现快速查找并在应用程序之间共享数据。这是正确的吗?原子类型的词源是什么?编辑经过大量搜索后,我注意到Prolog使用原子,所以这个词一定有一些起源。它似乎用于引用任何单个数据。 最佳答案 ATOM是一个16位Windows类句柄原语。它的值对用户模式完全不透明。它不是指针或索引。typedef无符号短ATOM; 关于c++-"atom"数据类型是什么?,我们在S

c++ - "atom"数据类型是什么?

我在Win32api中遇到了ATOM类型在AcrobatAPI中还有ASAtom.据我所知,原子是哈希表的键,通常是字符串,以实现快速查找并在应用程序之间共享数据。这是正确的吗?原子类型的词源是什么?编辑经过大量搜索后,我注意到Prolog使用原子,所以这个词一定有一些起源。它似乎用于引用任何单个数据。 最佳答案 ATOM是一个16位Windows类句柄原语。它的值对用户模式完全不透明。它不是指针或索引。typedef无符号短ATOM; 关于c++-"atom"数据类型是什么?,我们在S

c++ - 如何检查 A+B 是否超过 long long? (A和B都是长长的)

这个问题在这里已经有了答案:HowdoIdetectunsignedintegeroverflow?(31个回答)关闭9年前。我有两个数字:A和B。我需要在代码中的某处计算A+B。A和B都是longlong,可以是正负。我的代码运行错误,我怀疑是在计算A+B时出现问题。我只是想检查A+B是否超过longlong范围。所以,任何方法都是可以接受的,因为我只用它来调试。 最佳答案 只有当两个数字具有相同的符号时,才可能发生溢出。如果两者都是正数,那么如果在数学上A+B>LLONG_MAX或等效地为B>LLONG_MAX-A,则会出现溢出

c++ - 如何检查 A+B 是否超过 long long? (A和B都是长长的)

这个问题在这里已经有了答案:HowdoIdetectunsignedintegeroverflow?(31个回答)关闭9年前。我有两个数字:A和B。我需要在代码中的某处计算A+B。A和B都是longlong,可以是正负。我的代码运行错误,我怀疑是在计算A+B时出现问题。我只是想检查A+B是否超过longlong范围。所以,任何方法都是可以接受的,因为我只用它来调试。 最佳答案 只有当两个数字具有相同的符号时,才可能发生溢出。如果两者都是正数,那么如果在数学上A+B>LLONG_MAX或等效地为B>LLONG_MAX-A,则会出现溢出