TEST( TestSBOFooable_HeapAllocations, MoveConstruction_SmallObject ) { auto expected_heap_allocations = 0u; Fooable fooable = MockFooable(); CHECK_HEAP_ALLOC( Fooable other( std::move(fooable) ), expected_heap_allocations ); }
TEST( TestHeaderOnlyVTableCOWFooable_HeapAllocations, MoveConstruction ) { auto expected_heap_allocations = 0u; Fooable fooable = MockFooable(); CHECK_HEAP_ALLOC( Fooable other( std::move(fooable) ), expected_heap_allocations ); }
TEST( TestSBOFooable_HeapAllocations, CopyAssignment_SmallObject ) { auto expected_heap_allocations = 0u; Fooable fooable = MockFooable(); CHECK_HEAP_ALLOC( Fooable other; other = fooable, expected_heap_allocations ); }
TEST( TestHeaderOnlyVTableCOWFooable_HeapAllocations, CopyAssignment ) { auto expected_heap_allocations = 0u; Fooable fooable = MockFooable(); CHECK_HEAP_ALLOC( Fooable other; other = fooable, expected_heap_allocations ); }
TEST( TestHeaderOnlyVTableCOWFooable_HeapAllocations, CopyConstruction ) { auto expected_heap_allocations = 0u; Fooable fooable = MockFooable(); CHECK_HEAP_ALLOC( Fooable other( fooable ), expected_heap_allocations ); expected_heap_allocations = 1u; CHECK_HEAP_ALLOC( other.set_value(Mock::other_value), expected_heap_allocations ); }