add weakerpointer.cpp