summaryrefslogtreecommitdiffstats
path: root/CMakeGraphVizOptions.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2018-09-25 23:43:41 (GMT)
committerBrad King <brad.king@kitware.com>2018-12-12 13:10:15 (GMT)
commitff69763ca08fbd3a9831ec0c8adb32a7111b1a46 (patch)
tree2ed587456b95ba27ab334a6f19f5703620463736 /CMakeGraphVizOptions.cmake
parent410a3e4b22c72794d4f96e41c1d37d84d6e7e54d (diff)
downloadCMake-ff69763ca08fbd3a9831ec0c8adb32a7111b1a46.zip
CMake-ff69763ca08fbd3a9831ec0c8adb32a7111b1a46.tar.gz
CMake-ff69763ca08fbd3a9831ec0c8adb32a7111b1a46.tar.bz2
String: Add a custom string type
Create a `cm::String` type that holds a view of a string buffer and optionally shares ownership of the buffer. Instances can either borrow longer-lived storage (e.g. static storage of string literals) or internally own a `std::string` instance. In the latter case, share ownership with copies and substrings. Allocate a new internal string only on operations that require mutation. This will allow us to recover string sharing semantics that we used to get from C++98 std::string copy-on-write implementations. Such implementations are not allowed by C++11 so code our own in a custom string type instead.
Diffstat (limited to 'CMakeGraphVizOptions.cmake')
0 files changed, 0 insertions, 0 deletions