Changeset bc7ec7c in mainline


Ignore:
Timestamp:
2018-07-05T21:41:17Z (6 years ago)
Author:
Dzejrou <dzejrou@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2084bfcd
Parents:
ac47ba95
git-author:
Jaroslav Jindrak <dzejrou@…> (2017-10-13 17:52:51)
git-committer:
Dzejrou <dzejrou@…> (2018-07-05 21:41:17)
Message:

cpp: moved new to impl/new.hpp and added missing C++14 delete operators that are used on user defined incomplete types

Location:
uspace/lib/cpp
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/cpp/include/impl/new.hpp

    rac47ba95 rbc7ec7c  
    6060void* operator new[](std::size_t, const std::nothrow_t&) noexcept;
    6161
    62 void operator delete(void* );
    63 void operator delete[](void* );
     62void operator delete(void*) noexcept;
     63void operator delete(void*, std::size_t) noexcept;
     64void operator delete[](void*) noexcept;
     65void operator delete[](void*, std::size_t) noexcept;
    6466
    6567#endif
  • uspace/lib/cpp/include/new

    rac47ba95 rbc7ec7c  
    2727 */
    2828
    29 #ifndef LIBCPP_NEW
    30 #define LIBCPP_NEW
    31 
    32 #include <exception>
    33 
    34 namespace std
    35 {
    36 
    37 class bad_alloc: public std::exception
    38 {
    39         public:
    40                 bad_alloc() = default;
    41                 bad_alloc(const bad_alloc&);
    42                 bad_alloc& operator=(const bad_alloc&) = default;
    43                 virtual const char* what() const override;
    44                 virtual ~bad_alloc() = default;
    45 };
    46 
    47 struct nothrow_t {};
    48 extern const nothrow_t nothrow;
    49 
    50 using new_handler = void (*)();
    51 
    52 new_handler set_new_handler(new_handler);
    53 new_handler get_new_handler() noexcept;
    54 
    55 }
    56 
    57 void* operator new(std::size_t);
    58 void* operator new(std::size_t, const std::nothrow_t&) noexcept;
    59 void* operator new[](std::size_t);
    60 void* operator new[](std::size_t, const std::nothrow_t&) noexcept;
    61 
    62 void operator delete(void* );
    63 void operator delete[](void* );
    64 
    65 #endif
     29#include <impl/new.hpp>
  • uspace/lib/cpp/src/new.cpp

    rac47ba95 rbc7ec7c  
    100100}
    101101
    102 void operator delete(void* ptr)
     102void operator delete(void* ptr) noexcept
    103103{
    104104    if (ptr)
     
    106106}
    107107
    108 void operator delete[](void* ptr)
     108void operator delete(void* ptr, std::size_t ignored) noexcept
    109109{
    110110    ::operator delete(ptr);
    111111}
     112
     113void operator delete[](void* ptr) noexcept
     114{
     115    ::operator delete(ptr);
     116}
     117
     118void operator delete[](void* ptr, std::size_t ignored) noexcept
     119{
     120    ::operator delete(ptr);
     121}
Note: See TracChangeset for help on using the changeset viewer.