join Namespace Reference#
Rocprofiler SDK Developer API 0.4.0
ROCm Profiling API and tools
|
rocprofiler::sdk::join Namespace Reference
Namespaces | |
namespace | impl |
Data Structures | |
struct | config |
struct | triplet_config |
Typedefs | |
using | generic_config = triplet_config< 0 > |
using | array_config = triplet_config< 1 > |
using | pair_config = triplet_config< 2 > |
Enumerations | |
enum | { NoQuoteStrings = 0x0 , QuoteStrings = 0x1 } |
Functions | |
template<typename... ArgsT> | |
void | consume_args (ArgsT &&...) |
template<int TraitT = NoQuoteStrings, typename... Args> | |
auto | join (config _cfg, Args &&... _args) |
template<int TraitT = NoQuoteStrings, typename... Args> | |
auto | join (std::array< std::string_view, 3 > &&_delims, Args &&... _args) |
template<int TraitT = NoQuoteStrings, typename DelimT , typename... Args, std::enable_if_t<!mpl::is_basic_same< config, DelimT >::value, int > = 0> | |
auto | join (DelimT &&_delim, Args &&... _args) |
template<typename ArgT > | |
auto | quoted (ArgT &&_arg) |
Typedef Documentation
◆ array_config
using rocprofiler::sdk::join::array_config = typedef triplet_config<1> |
◆ generic_config
using rocprofiler::sdk::join::generic_config = typedef triplet_config<0> |
◆ pair_config
using rocprofiler::sdk::join::pair_config = typedef triplet_config<2> |
Enumeration Type Documentation
◆ anonymous enum
anonymous enum |
Enumerator | |
---|---|
NoQuoteStrings | |
QuoteStrings |
Function Documentation
◆ consume_args()
template<typename... ArgsT>
|
inline |
Definition at line 45 of file join.hpp.
46{}
Referenced by rocprofiler::sdk::join::impl::join_arg().
Here is the caller graph for this function:
◆ join() [1/3]
template<int TraitT = NoQuoteStrings, typename... Args>
auto rocprofiler::sdk::join::join | ( | config | _cfg, |
Args &&... | _args | ||
) |
Definition at line 211 of file join.hpp.
212{
213 static_assert(std::is_trivially_copyable<config>::value,
214 "Error! config is not trivially copyable");
215
216 std::stringstream _ss{};
217 _ss.setf(_cfg.flags);
218 ((_ss << ((mpl::is_empty(_args)) ? std::string_view{} : std::string_view{_cfg.delimiter})
219 << impl::join_arg<TraitT>(_cfg, _args)),
220 ...);
221 auto _ret = _ss.str();
223 auto _cmp =
224 strncmp(std::string_view{_ret}.data(), std::string_view{_cfg.delimiter}.data(), _len) == 0;
226 ((_cmp) ? _ret.substr(_len) : _ret) + std::string{_cfg.suffix})
227 : std::string{};
228}
STL namespace.
References rocprofiler::sdk::join::triplet_config< Idx >::delimiter, rocprofiler::sdk::join::config::flags, rocprofiler::sdk::mpl::is_empty(), join(), rocprofiler::sdk::join::triplet_config< Idx >::prefix, and rocprofiler::sdk::join::triplet_config< Idx >::suffix.
Referenced by join(), join(), join(), and quoted().
Here is the call graph for this function:
Here is the caller graph for this function:
◆ join() [2/3]
template<int TraitT = NoQuoteStrings, typename DelimT , typename... Args, std::enable_if_t<!mpl::is_basic_same< config, DelimT >::value, int > = 0>
auto rocprofiler::sdk::join::join | ( | DelimT && | _delim, |
Args &&... | _args | ||
) |
Definition at line 246 of file join.hpp.
247{
248 using delim_type = mpl::basic_identity_t<DelimT>;
249
250 if constexpr(std::is_constructible<config, delim_type>::value)
251 {
253 return join<TraitT>(_cfg, std::forward<Args>(_args)...);
254 }
255 else if constexpr(std::is_same<delim_type, char>::value)
256 {
257 auto _cfg = config{};
258 const char _delim_c[2] = {_delim, '\0'};
259 _cfg.delimiter = _delim_c;
260 return join<TraitT>(_cfg, std::forward<Args>(_args)...);
261 }
262 else
263 {
264 auto _cfg = config{};
265 _cfg.delimiter = std::string_view{_delim};
266 return join<TraitT>(_cfg, std::forward<Args>(_args)...);
267 }
268}
Definition join.hpp:68
References rocprofiler::sdk::join::triplet_config< Idx >::delimiter, and join().
Here is the call graph for this function:
◆ join() [3/3]
template<int TraitT = NoQuoteStrings, typename... Args>
auto rocprofiler::sdk::join::join | ( | std::array< std::string_view, 3 > && | _delims, |
Args &&... | _args | ||
) |
Definition at line 232 of file join.hpp.
233{
235 _cfg.delimiter = _delims.at(0);
236 _cfg.prefix = _delims.at(1);
237 _cfg.suffix = _delims.at(2);
238 return join(_cfg, std::forward<Args>(_args)...);
239}
References rocprofiler::sdk::join::triplet_config< Idx >::delimiter, and join().
Here is the call graph for this function:
◆ quoted()
template<typename ArgT >
auto rocprofiler::sdk::join::quoted | ( | ArgT && | _arg | ) |
Generated by 1.9.8