mirror of
https://github.com/boostorg/atomic.git
synced 2025-05-12 05:51:45 +00:00
1. Expose value_type and difference_type (where present) to user's code. 2. Prohibit arithmetic operations on pointers to non-object types. In particular, arithmetic operations such as fetch_add/fetch_sub will no longer compile for pointers to cv void, pointers to functions and pointers to non-static class members. Also, use C++11 <type_traits> when possible instead of Boost.TypeTraits to reduce dependencies. Cleaned up value_arg_type internal type usage for more efficient argument passing.
17 lines
418 B
C++
17 lines
418 B
C++
// Copyright (c) 2017 Andrey Semashev
|
|
//
|
|
// Distributed under the Boost Software License, Version 1.0.
|
|
// See accompanying file LICENSE_1_0.txt or copy at
|
|
// http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
#include <boost/atomic.hpp>
|
|
|
|
int main(int, char *[])
|
|
{
|
|
// The test verifies that atomic<> does not provide arithmetic operations on void pointers
|
|
boost::atomic< void* > a;
|
|
a.fetch_add(1);
|
|
|
|
return 1;
|
|
}
|