mirror of
https://github.com/fmtlib/fmt.git
synced 2024-11-23 02:50:04 +00:00
Ability to join elements of std::initializer_list was added
This commit is contained in:
parent
ff486a72a7
commit
85050aa2e6
@ -12,6 +12,7 @@
|
|||||||
#ifndef FMT_RANGES_H_
|
#ifndef FMT_RANGES_H_
|
||||||
#define FMT_RANGES_H_
|
#define FMT_RANGES_H_
|
||||||
|
|
||||||
|
#include <initializer_list>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|
||||||
#include "format.h"
|
#include "format.h"
|
||||||
@ -358,6 +359,29 @@ FMT_CONSTEXPR tuple_arg_join<wchar_t, T...> join(const std::tuple<T...>& tuple,
|
|||||||
return {tuple, sep};
|
return {tuple, sep};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
\rst
|
||||||
|
Returns an object that formats `initializer_list` with elements separated by
|
||||||
|
`sep`.
|
||||||
|
|
||||||
|
**Example**::
|
||||||
|
|
||||||
|
fmt::print("{}", fmt::join({1, 2, 3}, ", "));
|
||||||
|
// Output: "1, 2, 3"
|
||||||
|
\endrst
|
||||||
|
*/
|
||||||
|
template <typename T>
|
||||||
|
arg_join<internal::iterator_t<const std::initializer_list<T>>, char> join(
|
||||||
|
std::initializer_list<T> list, string_view sep) {
|
||||||
|
return join(std::begin(list), std::end(list), sep);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
arg_join<internal::iterator_t<const std::initializer_list<T>>, wchar_t> join(
|
||||||
|
std::initializer_list<T> list, wstring_view sep) {
|
||||||
|
return join(std::begin(list), std::end(list), sep);
|
||||||
|
}
|
||||||
|
|
||||||
FMT_END_NAMESPACE
|
FMT_END_NAMESPACE
|
||||||
|
|
||||||
#endif // FMT_RANGES_H_
|
#endif // FMT_RANGES_H_
|
||||||
|
@ -70,6 +70,12 @@ TEST(RangesTest, JoinTuple) {
|
|||||||
EXPECT_EQ("4.0", fmt::format("{}", fmt::join(t4, "/")));
|
EXPECT_EQ("4.0", fmt::format("{}", fmt::join(t4, "/")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(RangesTest, JoinInitializerList) {
|
||||||
|
EXPECT_EQ("1, 2, 3", fmt::format("{}", fmt::join({1, 2, 3}, ", ")));
|
||||||
|
EXPECT_EQ("fmt rocks !",
|
||||||
|
fmt::format("{}", fmt::join({"fmt", "rocks", "!"}, " ")));
|
||||||
|
}
|
||||||
|
|
||||||
struct my_struct {
|
struct my_struct {
|
||||||
int32_t i;
|
int32_t i;
|
||||||
std::string str; // can throw
|
std::string str; // can throw
|
||||||
|
Loading…
Reference in New Issue
Block a user