mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			SharedPtr: add nullptr constructor
For consistency with `std::shared_ptr`, and `mbed::Callback`, and as a potential optimisation aid, give `SharedPtr` a distinct constructor for `nullptr`.pull/12048/head
							parent
							
								
									888dfffabf
								
							
						
					
					
						commit
						2b4b7232b7
					
				| 
						 | 
				
			
			@ -65,7 +65,7 @@ void test_single_sharedptr_lifetime()
 | 
			
		|||
 */
 | 
			
		||||
void test_instance_sharing()
 | 
			
		||||
{
 | 
			
		||||
    SharedPtr<TestStruct> s_ptr1(NULL);
 | 
			
		||||
    SharedPtr<TestStruct> s_ptr1(nullptr);
 | 
			
		||||
 | 
			
		||||
    // Sanity-check value of counter
 | 
			
		||||
    TEST_ASSERT_EQUAL(0, TestStruct::s_count);
 | 
			
		||||
| 
						 | 
				
			
			@ -80,7 +80,7 @@ void test_instance_sharing()
 | 
			
		|||
 | 
			
		||||
    TEST_ASSERT_EQUAL(1, TestStruct::s_count);
 | 
			
		||||
 | 
			
		||||
    s_ptr1 = NULL;
 | 
			
		||||
    s_ptr1 = nullptr;
 | 
			
		||||
 | 
			
		||||
    // Destroy shared pointer
 | 
			
		||||
    TEST_ASSERT_EQUAL(0, TestStruct::s_count);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -75,6 +75,13 @@ public:
 | 
			
		|||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @brief Create empty SharedPtr not pointing to anything.
 | 
			
		||||
     */
 | 
			
		||||
    constexpr SharedPtr(std::nullptr_t) : SharedPtr()
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @brief Create new SharedPtr
 | 
			
		||||
     * @param ptr Pointer to take control over
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue