| 262 | /** Concatenate string pieces and numbers into a single string. */ |
| 263 | template <typename A, typename B, typename... AV> |
| 264 | inline std::string cmStrCat(A&& a, B&& b, AV&&... args) |
| 265 | { |
| 266 | static auto const makePair = |
| 267 | [](cmAlphaNum const& arg) -> std::pair<cm::string_view, std::string*> { |
| 268 | return { arg.View(), arg.RValueString() }; |
| 269 | }; |
| 270 | |
| 271 | return cmCatViews({ makePair(std::forward<A>(a)), |
| 272 | makePair(std::forward<B>(b)), |
| 273 | makePair(std::forward<AV>(args))... }); |
| 274 | } |
| 275 | |
| 276 | /** Joins wrapped elements of a range with separator into a single string. */ |
| 277 | template <typename Range> |
searching dependent graphs…