1- // Formatting library for C++ - dynamic format arguments
1+ // Formatting library for C++ - dynamic argument lists
22//
33// Copyright (c) 2012 - present, Victor Zverovich
44// All rights reserved.
@@ -22,8 +22,9 @@ template <typename T> struct is_reference_wrapper : std::false_type {};
2222template <typename T>
2323struct is_reference_wrapper <std::reference_wrapper<T>> : std::true_type {};
2424
25- template <typename T> const T& unwrap (const T& v) { return v; }
26- template <typename T> const T& unwrap (const std::reference_wrapper<T>& v) {
25+ template <typename T> auto unwrap (const T& v) -> const T& { return v; }
26+ template <typename T>
27+ auto unwrap (const std::reference_wrapper<T>& v) -> const T& {
2728 return static_cast <const T&>(v);
2829}
2930
@@ -50,7 +51,7 @@ class dynamic_arg_list {
5051 std::unique_ptr<node<>> head_;
5152
5253 public:
53- template <typename T, typename Arg> const T& push (const Arg& arg) {
54+ template <typename T, typename Arg> auto push (const Arg& arg) -> const T& {
5455 auto new_node = std::unique_ptr<typed_node<T>>(new typed_node<T>(arg));
5556 auto & value = new_node->value ;
5657 new_node->next = std::move (head_);
@@ -110,14 +111,14 @@ class dynamic_format_arg_store
110111
111112 friend class basic_format_args <Context>;
112113
113- unsigned long long get_types () const {
114+ auto get_types () const -> unsigned long long {
114115 return detail::is_unpacked_bit | data_.size () |
115116 (named_info_.empty ()
116117 ? 0ULL
117118 : static_cast <unsigned long long >(detail::has_named_args_bit));
118119 }
119120
120- const basic_format_arg<Context>* data () const {
121+ auto data () const -> const basic_format_arg<Context>* {
121122 return named_info_.empty () ? data_.data () : data_.data () + 1 ;
122123 }
123124
0 commit comments