FastLED 3.9.15
Loading...
Searching...
No Matches

◆ assign() [6/6]

template<typename InputIt>
basic_string & fl::basic_string::assign ( InputIt first,
InputIt last )
inline

Definition at line 237 of file basic_string.h.

237 {
238 clear();
239 fl::size len = 0;
240 for (auto it = first; it != last; ++it) {
241 ++len;
242 }
243 if (len == 0) {
244 return *this;
245 }
246 mLength = len;
247 if (len + 1 <= mInlineCapacity) {
248 if (!isInline()) {
249 mStorage.reset();
250 }
251 fl::size i = 0;
252 for (auto it = first; it != last; ++it, ++i) {
253 inlineBufferPtr()[i] = *it;
254 }
255 inlineBufferPtr()[len] = '\0';
256 } else {
259 fl::size i = 0;
260 for (auto it = first; it != last; ++it, ++i) {
261 ptr->data()[i] = *it;
262 }
263 ptr->data()[len] = '\0';
264 }
265 return *this;
266 }
bool isInline() const FL_NOEXCEPT
fl::size mInlineCapacity
void clear(bool freeMemory=false) FL_NOEXCEPT
NotNullStringHolderPtr & heapData() FL_NOEXCEPT
fl::variant< NotNullStringHolderPtr, ConstLiteral, ConstView > mStorage
char * inlineBufferPtr() FL_NOEXCEPT
fl::not_null< StringHolderPtr > NotNullStringHolderPtr
shared_ptr< T > make_shared(Args &&... args) FL_NOEXCEPT
Definition shared_ptr.h:414

References basic_string(), assign(), clear(), FL_NOEXCEPT, heapData(), inlineBufferPtr(), isInline(), fl::make_shared(), mInlineCapacity, mLength, and mStorage.

+ Here is the call graph for this function: