smart pointer
abstract data type that simulates a pointer while providing added features, such as automatic memory management or bounds checking, intended to reduce bugs caused by the misuse of pointers, while retaining efficiency
en-US/ˈsmɑɹt ˈpɔɪntɚ/
en-GB/ˈsmɑːt ˈpɔɪntə/