Changeset 973a268 in mainline
- Timestamp:
- 2018-07-05T21:41:18Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0806544
- Parents:
- 4c58668
- git-author:
- Jaroslav Jindrak <dzejrou@…> (2017-11-23 23:24:21)
- git-committer:
- Dzejrou <dzejrou@…> (2018-07-05 21:41:18)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/cpp/include/impl/memory.hpp
r4c58668 r973a268 268 268 269 269 template<class T> 270 T* addressof(T& x) noexcept; 271 272 template<class T> 270 273 class allocator 271 274 { … … 301 304 302 305 pointer address(reference x) const noexcept 303 { // TODO: see std::addressof304 return &x;306 { 307 return addressof(x); 305 308 } 306 309 307 310 const_pointer address(const_reference x) const noexcept 308 { // TODO: see std::addressof309 return &x;311 { 312 return addressof(x); 310 313 } 311 314 … … 373 376 template<class T> 374 377 T* addressof(T& x) noexcept 375 { // TODO: This should actually work even with overloaded operator&. 376 return &x; 377 } 378 { 379 return reinterpret_cast<T*>( 380 &const_cast<char&>( 381 reinterpret_cast<const volatile char&>(x) 382 )); 383 } 384 385 template<class Iterator> 386 struct iterator_traits; 378 387 379 388 template<class InputIterator, class ForwardIterator>
Note:
See TracChangeset
for help on using the changeset viewer.