However, pp's move constructor is never called. I tried placing a breakpoint in ClassA move constructor but debugger tells me that code isn't available for debugging. I am using Visual Studio 2017 with Language set as ISO C++ 17.
Be careful with new when using default member initializers because they will be used automatically in all constructors that you define (even copy and move constructors) unless you explicitly specify another value to initialize the member with in the member initializer list.
This means that your ClassA move constructor is equivalent to this: