Merge 713b8d5006 into 64a0016680
This commit is contained in:
commit
6e7eb5f4ca
@ -1015,6 +1015,7 @@ struct Value {
|
||||
void *formatter, const void *arg, void *format_str_ptr);
|
||||
|
||||
struct CustomValue {
|
||||
std::size_t size;
|
||||
const void *value;
|
||||
FormatFunc format;
|
||||
};
|
||||
@ -1314,6 +1315,7 @@ class MakeValue : public Arg {
|
||||
MakeValue(const T &value,
|
||||
typename EnableIf<Not<
|
||||
ConvertToInt<T>::value>::value, int>::type = 0) {
|
||||
custom.size = sizeof(T);
|
||||
custom.value = &value;
|
||||
custom.format = &format_custom_arg<T>;
|
||||
}
|
||||
@ -1388,10 +1390,13 @@ class ArgList {
|
||||
};
|
||||
|
||||
internal::Arg::Type type(unsigned index) const {
|
||||
return type(types_, index);
|
||||
}
|
||||
static internal::Arg::Type type(uint64_t types, unsigned index) {
|
||||
unsigned shift = index * 4;
|
||||
uint64_t mask = 0xf;
|
||||
return static_cast<internal::Arg::Type>(
|
||||
(types_ & (mask << shift)) >> shift);
|
||||
(types & (mask << shift)) >> shift);
|
||||
}
|
||||
|
||||
template <typename Char>
|
||||
@ -1408,6 +1413,8 @@ class ArgList {
|
||||
ArgList(ULongLong types, const internal::Arg *args)
|
||||
: types_(types), args_(args) {}
|
||||
|
||||
uint64_t types() const { return types_; }
|
||||
|
||||
/** Returns the argument at specified index. */
|
||||
internal::Arg operator[](unsigned index) const {
|
||||
using internal::Arg;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user