String16 is moveable (noexcept)
String16 is still in use by AIDL compiler. Because String16 is not noexcept-move-constructible, the C++ compiler will complain when it is used with non-copyable types (such as ParcelFileDescriptor). For example, when vector<Foo> is resized, copy-ctor of Foo is called, which is not available. parcelable Foo { String s; ParcelFileDescriptor[] pfds; } By providing noexcept move-ctor for String16, vector<Foo> can be resized with no problem. Btw, copy from StaticString16 is specialized for efficiency and move from StaticString16 don't need to be different from copy. Bug: 192136980 Test: libutils_test Change-Id: I13744a2ceebf5781c3ef7f3a04237a6750b0db0a
Loading
Please register or sign in to comment