3 #include <boost/utility.hpp>
5 template<class T> class atomic_ptr :boost::noncopyable
13 atomic_ptr& operator=(T _q) {
14 __sync_lock_test_and_set(&_p,_q);
17 atomic_ptr& operator++(int){
21 atomic_ptr& operator--(int){
25 bool operator<(T _q) const{
28 bool operator<=(T _q) const{
31 bool operator>(T _q) const{
34 bool operator>=(T _q) const{
37 bool operator==(T _q) const{
40 bool operator!=(T _q) const{
55 atomic_ptr& operator=(const int _q) {
56 __sync_lock_test_and_set(&_p,_q);
60 __sync_add_and_fetch(&_p,1);
64 __sync_sub_and_fetch(&_p,1);
67 bool operator<(const int _q) const{
70 bool operator<=(const int _q) const{
73 bool operator>(const int _q) const{
76 bool operator>=(const int _q) const{
79 bool operator==(const int _q) const{
82 bool operator!=(const int _q) const{