StreamConstPtr: disallow passing a String temporary by d-a-v · Pull Request #8410 · esp8266/Arduino (original) (raw)

Unless using it like this:

StreamConstPtr(String("test")).sendAll(elsewhere);

using auto var = StreamConstPtr(String-Temporary) leads to errors because it stores an expected-to-be invalid pointer.

This PR prevents from using temporary String with StreamConstPtr.

(note : StreamConstPtr("test").sendAll(elsewhere) is implicitely using an intermediate String)

edit:

+ missing virtual destructor in Stream::

(warning: deleting object of abstract class type 'Stream' which has non-virtual destructor 
 will cause undefined behavior [-Wdelete-non-virtual-dtor])