mapand stack are , explicitly calling delete yourObjectunder the hood, for most "explicit" definitions, etc., why your delete operator gets called. These deletions are no less legal than those contained in your code.
, , ? , __FILE__ __LINE__, , . , , , delete, .
, , , . delete. :
do { \
std::cout << __FILE__ << ":" << __LINE__ << ": " << p << std::endl; \
delete p; \
}