From fc97547b8b0b2544258ec893c0880f1f64f491e3 Mon Sep 17 00:00:00 2001
From: Axel Naumann
The Twine class is an efficient way for APIs to accept concatenated -strings. For example, a common LLVM paradigm is to name one instruction based on +
The Twine class is an +efficient way for APIs to accept concatenated strings. For example, a common +LLVM paradigm is to name one instruction based on the name of another instruction with a suffix, for example:
The Twine class is effectively a -lightweight rope +
The Twine class is effectively a lightweight +rope which points to temporary (stack allocated) objects. Twines can be implicitly constructed as the result of the plus operator applied to strings (i.e., a C -strings, an std::string, or a StringRef). The twine delays the -actual concatenation of strings until it is actually required, at which point -it can be efficiently rendered directly into a character array. This avoids -unnecessary heap allocation involved in constructing the temporary results of -string concatenation. See -"llvm/ADT/Twine.h" -for more information.
+strings, an std::string, or a StringRef). The twine delays +the actual concatenation of strings until it is actually required, at which +point it can be efficiently rendered directly into a character array. This +avoids unnecessary heap allocation involved in constructing the temporary +results of string concatenation. See +"llvm/ADT/Twine.h" +and here for more information.As with a StringRef, Twine objects point to external memory and should almost never be stored or mentioned directly. They are intended