Victor Zverovich
e33fe14f5b
Simplify visit
2019-06-10 08:28:39 -07:00
Victor Zverovich
e895da2ec3
Clean up value
2019-06-10 07:58:00 -07:00
Victor Zverovich
e1a67b5285
Remove TODO
2019-06-10 06:54:09 -07:00
Victor Zverovich
a291f07e1a
Clean up argument mapping
2019-06-09 22:27:40 -07:00
Victor Zverovich
5d9100fa2f
Move char8_t to fmt/core.h
2019-06-08 09:42:11 -07:00
Victor Zverovich
5d48733596
Clean up value construction
2019-06-07 19:27:20 -07:00
Victor Zverovich
0f0b42861b
Cleanup
2019-06-07 17:53:25 -07:00
Victor Zverovich
209db68b28
Get rid of FMT_CONSTEXPR11
2019-06-07 14:00:57 -07:00
Victor Zverovich
cb4c59495e
Deprecate convert_to_int
2019-06-07 13:38:08 -07:00
Victor Zverovich
40779749ac
is_formattable -> has_formatter
2019-06-07 06:51:21 -07:00
Victor Zverovich
b3cf8613b1
Make formatter specializations override implicit conversions
2019-06-07 06:25:46 -07:00
Victor Zverovich
3fdba04924
Reduce the number of nontrivial formatter instantiations
2019-06-06 22:02:53 -07:00
Victor Zverovich
f5f3ffac59
Merge string make_value overloads
2019-06-06 08:29:16 -07:00
Victor Zverovich
aa31028b2c
char_t_impl -> char_t
2019-06-05 10:13:34 -07:00
Victor Zverovich
0787d69747
Simplify SFINAE
2019-06-05 09:02:33 -07:00
Victor Zverovich
bae00aa8d7
Simplify is_string
2019-06-05 08:41:00 -07:00
Victor Zverovich
388bb389e6
integral_constant -> bool_constant
2019-06-05 08:14:47 -07:00
Victor Zverovich
7e39c7e6f4
Put stringy stuff together
2019-06-05 07:43:20 -07:00
Victor Zverovich
c264e641ea
Add conditional_t for pre-C++14
2019-06-04 18:50:30 -07:00
Victor Zverovich
064ce6b6c0
Specialize is_char for character types
2019-06-04 17:08:58 -07:00
Victor Zverovich
7893d85394
Clarify why we cannot have nice things
2019-06-04 08:47:25 -07:00
Victor Zverovich
5bafcb437b
Add comments about things broken in MSVC
2019-06-03 19:14:16 -07:00
Victor Zverovich
eddb84cfc0
Fix formatting of exotic characters
2019-06-03 17:08:00 -07:00
Victor Zverovich
7e42c65bb6
Document a more useful to_string_view overload
2019-06-03 11:57:33 -07:00
Victor Zverovich
0c6a6e0250
Get rid of the FILE* hack and reword apidocs
2019-06-03 10:27:00 -07:00
mocabe
1653244c69
Fix compilation issue on VS2019 ( #1186 ) ( #1191 )
2019-06-03 08:34:27 -07:00
Victor Zverovich
d54e64b3c8
Make buffer_context an alias template
2019-06-02 18:28:49 -07:00
Victor Zverovich
ec6651087d
Remove old is_constructible workarounds and replace typedefs with using
2019-06-02 16:46:45 -07:00
Victor Zverovich
4d4b8c238d
FMT_CHAR -> char_t
2019-06-02 15:03:37 -07:00
Victor Zverovich
5b7bbf8853
Revert "FMT_CHAR -> char_t"
...
This reverts commit 4c650057a0
.
2019-06-01 15:01:04 -07:00
Victor Zverovich
4c650057a0
FMT_CHAR -> char_t
2019-06-01 12:32:24 -07:00
Victor Zverovich
2833c76f22
Move char_t to template param to reduce symbol size
2019-06-01 12:14:27 -07:00
Victor Zverovich
67feef5589
Make enable_if_t more std-like and move to fmt namespace
2019-06-01 10:05:16 -07:00
Victor Zverovich
f57227a148
FMT_ENABLE_IF -> enable_if_t
2019-05-31 20:09:19 -07:00
Victor Zverovich
634f707f2b
Simplify char_t and remove msvc2013 from CI
2019-05-31 19:28:37 -07:00
Victor Zverovich
406e632bd1
result_of -> invoke_result_t
2019-05-31 08:54:32 -07:00
Victor Zverovich
49f78a427b
Demacrify
2019-05-30 21:30:29 -07:00
Victor Zverovich
637bf3c6d9
Workaround a bug in clang-format
2019-05-30 11:46:31 -07:00
Victor Zverovich
8302c2f33b
fmt::internal::declval -> std::declval
2019-05-30 09:46:10 -07:00
Victor Zverovich
d07cc2026b
FMT_EXPLICIT -> explicit, FMT_NULL -> nullptr
2019-05-30 07:42:36 -07:00
Victor Zverovich
e5512c5d57
Use static_assert instead of SFINAE in arg(...)
2019-05-29 13:21:24 -07:00
mocabe
118d8bccc2
Fix compilation error under MSVC 19.21 ( #1140 )
2019-05-08 11:20:55 -07:00
mocabe
6828d549e8
Add FMT_ENABLE_IF_T
...
for definitions of functions which declared using FMT_ENABLE_IF
2019-05-08 11:20:55 -07:00
denchat
29c10fbf6e
Fix DLL visibility of explicit instantiation "declaration" of internal::basic_data<void> in header format.h and the explicit instantiation "definition" in format.cc ( #1134 )
...
* Update format.cc
As the explicit instantiation *declaration* of `internal::basic_data<void>` in format.h, this explicit instantiation *definition* should mirror FMT_API also.
* Mirror visibility of explicit instantiation declaration
explicit instantiation declaration of internal::basic_data<void> should mirror visibility of FMT_API
* Eliminate `__declspec(dllexport)` designation on extern template internal::basic_data<> when `extern` affected during exporting phase.
* Add `FMT_EXTERN_TEMPLATE_API` for designate DLL export `extern template`
When exporting DLL, do not designate `__declspec(dllexport)` any template that has any explicit class template declaration a.k.a. `extern template`. Instead, designate `__declspec(dllexport)` at single point where we have explicit class template definition a.k.a. normal instantiation without `extern`
Note: this is a c++11 feature.
* Delete whole `FMT_USE_EXTERN_TEMPLATES` block and its condition
1. Remove whole `FMT_USE_EXTERN_TEMPLATES` block
(trailing `FMT_UDL_TEMPLATE` block)
````
#ifndef FMT_USE_EXTERN_TEMPLATES
# ifndef FMT_HEADER_ONLY
# define FMT_USE_EXTERN_TEMPLATES \
((FMT_CLANG_VERSION >= 209 && __cplusplus >= 201103L) || \
(FMT_GCC_VERSION >= 303 && FMT_HAS_GXX_CXX11))
# else
# define FMT_USE_EXTERN_TEMPLATES 0
# endif
#endif
````
2. Delete `FMT_USE_EXTERN_TEMPLATES` condition, only condition, that trailing basic_data class template definition.
````
#if FMT_USE_EXTERN_TEMPLATES
extern template struct basic_data<void>;
#endif
````
3. Replace `FMT_API` with new `FMT_EXTERN_TEMPLATE_API` added in `core.h` for sake of extern template of `basic_data<void>`
* Add `#define FMT_EXTERN extern` only when not `FMT_HEADER_ONLY`
* Replace `extern` on basic_data<void> with the `FMT_EXTERN` condition in core.h
* replace misspelled if !define() with ifndef
2019-05-02 07:49:01 -07:00
Victor Zverovich
5d755d0a4e
Fix handling of volatile char ( #1115 )
2019-04-14 12:34:56 -07:00
Victor Zverovich
ccd70f59ee
Workaround bogus unreachable warnings in MSVC
2019-04-11 17:59:35 -07:00
Bruce Mitchener
aeb5ad3ce1
Enable [[noreturn]] some.
2019-04-08 07:53:59 -07:00
Victor Zverovich
2808395481
basic_buffer -> buffer
...
This reduces symbol sizes and gets rid of shadowing warnings.
2019-04-07 20:32:28 -07:00
Victor Zverovich
b7e6bf9671
clang format
2019-03-21 20:51:37 -07:00
Victor Zverovich
da0ea4161a
Make compile-time checks work with fallback formatter ( #1088 )
2019-03-21 19:26:53 -07:00
ricco19
6d416cf674
Forward declare is_string<FILE*> specializations
2019-03-19 05:20:18 -07:00
Victor Zverovich
c21c6b8c4b
Move enable_if to template params
2019-03-16 15:15:38 -07:00
Michael Lui
187bd1b8b2
Clarify lifetimes of named_arg parameters ( #1051 )
...
* Clarify usage of fmt::arg
Document that fmt::arg takes a non-owning
reference, even if that reference is to
a temporary. As such, users should make sure
the lifetime of the reference lasts as long
as the named argument.
* Clean up language
Remove mentions of `std::reference_wrapper` and rvalues
in favor of more common terminology like dangling references.
2019-02-22 06:37:19 -10:00
Victor Zverovich
c5aad69f2a
Restore deprecated begin()
2019-02-15 15:00:02 -08:00
Victor Zverovich
83808076e3
Minor cleanup
2019-02-13 19:28:02 -08:00
Victor Zverovich
9660ea1bff
Simplify format string checks
2019-02-10 18:00:19 -08:00
Victor Zverovich
f041f128f5
Minor cleanup
2019-02-10 15:20:40 -08:00
Victor Zverovich
e4572e5def
Update std implementation
2019-02-10 07:56:33 -08:00
Victor Zverovich
442fa1bd46
Decouple format and parse contexts
2019-02-09 20:39:37 -08:00
Victor Zverovich
744e66bb08
Deprecate format_context::parse_context()
2019-02-09 16:15:20 -08:00
Daniela Engert
61c9b563c2
Replace 'std::result_of' by 'std::invoke_result' where possible ( #1025 )
...
C++17 deprecated 'std::result_of' in favour of 'std::invoke_result' and will ban it outright in C++20. Therefore
- implement 'internal::result_of' in terms of 'std::invoke_result' when compiling C++17 mode.
- implement 'internal::result_of' in terms of 'std::result_of' when compiling in modes C++11 or C++14.
Signed-off-by: Daniela Engert <dani@ngrt.de>
2019-02-04 11:25:22 -08:00
Elias Kosunen
7fbbfed8c6
Fix warnings caused by usage of deprecated functionality
2019-02-02 05:48:39 -08:00
Elias Kosunen
34951f1999
Replace comments regarding deprecation with attributes
2019-02-02 05:48:39 -08:00
Victor Zverovich
3f52336e6c
Simplify formatter selection
2019-01-30 19:39:42 -08:00
Victor Zverovich
7cdb1e5e40
Workaround broken is_default_constructible in MSVC
2019-01-21 10:54:49 -08:00
Victor Zverovich
5f1ceebc7f
Make formatter<T> override ostream<< for templates ( #952 )
2019-01-21 09:42:55 -08:00
Victor Zverovich
83f052930a
Add code from p0645
2019-01-20 15:12:01 -08:00
Victor Zverovich
dad1eec842
Workaround unimplemented T... on gcc 4.6.x ( #1008 )
2019-01-16 11:41:20 -08:00
Victor Zverovich
dde095fab8
Revert "Reorder defines"
...
This reverts commit 4a059914a9
.
2019-01-13 08:13:38 -08:00
Victor Zverovich
4a059914a9
Reorder defines
2019-01-13 07:40:37 -08:00
Victor Zverovich
58b6f8db48
Format the code using clang-format
2019-01-13 06:58:20 -08:00
stryku
9a777b9e1c
Implemented fmt::prepare()
...
Implementation of fmt::prepare() function and features around it.
2019-01-12 10:53:31 -08:00
Victor Zverovich
b3ad759a0a
Bump version and correct changelog
2018-12-28 13:09:31 -08:00
Victor Zverovich
b34d92b051
Bump version
2018-12-28 12:23:29 -08:00
Victor Zverovich
84e5170c9c
Update changelog and deprecate visit
2018-12-24 10:02:41 -08:00
Victor Zverovich
7f7504b3f5
Clean up docs
2018-12-12 18:21:13 -08:00
Victor Zverovich
ea5e4790bd
Fix formatting
2018-12-03 08:58:48 -08:00
Johan J
e867768ee6
Do not override user provided compile flag
2018-12-03 07:31:19 -08:00
Daniela Engert
e7e2ab1070
Make return type of basic_format_args::max_size() consistent.
...
This squashes nasty narrowing conversion warnings.
2018-12-01 17:07:21 -08:00
Victor Zverovich
bcf3fcd673
Clean up bit fiddling for argument packing
2018-11-30 17:04:49 -08:00
Victor Zverovich
64690d3a97
Add context_base::arg()
2018-11-24 10:49:48 -08:00
Victor Zverovich
982ee5c699
parse_context -> format_parse_context
2018-11-21 07:10:22 -08:00
Victor Zverovich
6c95fb3562
Default Context to format_context
2018-11-18 07:19:25 -08:00
Victor Zverovich
f2ee988105
Improve locale support
2018-11-14 12:07:39 -08:00
Victor Zverovich
bdda4d6030
Simplify compile-time strings
2018-10-28 09:02:03 -07:00
XZiar
2dea780fbd
change type naming and fix sfinae bug
2018-10-28 06:00:55 -07:00
XZiar
b98e8301d5
add non-char support for compile-time format check
2018-10-28 06:00:55 -07:00
Victor Zverovich
ccd3e8bbf3
Make is_constructible public ( #918 )
2018-10-27 17:10:19 -07:00
Victor Zverovich
0a96c032b9
Parameterize v*printf on string type ( #920 )
2018-10-25 13:52:08 -07:00
Victor Zverovich
61e6d2e38c
Fix core version of vformat_to
2018-10-25 06:21:41 -07:00
Victor Zverovich
ea4010d704
Merge has_to_string_view into is_string
2018-10-24 18:16:00 -07:00
Victor Zverovich
486fff597c
Add sprintf_format instantiations and remove syntactic noise
2018-10-24 16:46:32 -07:00
Victor Zverovich
f0328f8e36
Use char_traits::length in string_view ctor ( #914 )
2018-10-24 15:21:21 -07:00
Victor Zverovich
20c708bf6d
Fix build on gcc 4.4
2018-10-24 10:52:02 -07:00
Daniela Engert
2c81c851b2
Adapt any string-like type to be used by {fmt} just like the standard string types already supported. The adaption is totally non-intrusive.
...
Signed-off-by: Daniela Engert <dani@ngrt.de>
2018-10-22 18:25:52 -07:00
Daniela Engert
6a685571df
Make 'std::*::basic_string_view' a valid argument type for 'format_str' parameters.
...
Signed-off-by: Daniela Engert <dani@ngrt.de>
2018-10-08 06:12:02 -07:00
Victor Zverovich
655ce53383
is_format_string -> is_string
2018-10-07 12:45:22 -07:00
Daniela Engert
f16a118e88
Fix non-matching char types.
...
Signed-off-by: Daniela Engert <dani@ngrt.de>
2018-10-07 05:56:21 -07:00
Victor Zverovich
041bf83d9b
Improve fmt::format readability
2018-10-05 18:42:02 -07:00
Victor Zverovich
f5480635c0
visit -> visit_format_arg
2018-10-05 07:15:41 -07:00
Victor Zverovich
cdf3fa08dc
Put related code together in fmt/core.h
2018-10-04 19:44:09 -07:00
Victor Zverovich
38325248e5
Count width in code points ( #628 )
2018-10-03 20:09:46 -07:00
Daniela Engert
deb901b9e4
Parameterize core functions on the type of the format string.
...
Take #2 of n
Signed-off-by: Daniela Engert <dani@ngrt.de>
2018-10-03 14:19:08 -07:00
Victor Zverovich
0f98de3011
Update docs
2018-10-03 12:07:55 -07:00
Victor Zverovich
c797708fcc
Workaround strlen being non-constexpr in ARM toolchain
2018-10-03 09:23:49 -07:00
Victor Zverovich
63a87beba4
Add to_string_view
2018-10-01 18:48:18 -07:00
Victor Zverovich
4e0c314654
checked_format_args -> checked_args
2018-10-01 07:14:59 -07:00
Victor Zverovich
c3538a1eee
Simplify variadic functions further
2018-09-30 22:19:32 -07:00
Victor Zverovich
2d7d0835d7
Simplify variadic functions
2018-09-30 21:52:47 -07:00
Victor Zverovich
76a47d41c8
Cleanup the use of FMT_CHAR
2018-09-30 08:45:57 -07:00
Daniela Engert
267fdc7a1b
Parameterize core functions on the type of the format string.
...
Take #1 of n
Signed-off-by: Daniela Engert <dani@ngrt.de>
2018-09-30 08:40:58 -07:00
Victor Zverovich
5bced12421
Parameterize more functions on string type
2018-09-30 08:02:19 -07:00
Guillaume Fraux
e864acfdbd
Fix compilation with intel compilers (ICC/ICPC) v14.0
2018-09-27 07:11:23 -07:00
Daniela Engert
4cf21f58b2
constrain templated format_to on proper format string type.
...
Signed-off-by: Daniela Engert <dani@ngrt.de>
2018-09-26 21:05:47 -07:00
Victor Zverovich
d66fa2216e
Reduce syntactic noise
2018-09-23 14:31:14 -07:00
Victor Zverovich
48e6dcd0f2
Implement workarounds for gcc 4.4
2018-09-23 12:29:48 -07:00
Victor Zverovich
0ea3221d34
Remove is_named_arg and add FMT_CHAR
2018-09-23 09:44:01 -07:00
Victor Zverovich
d41be23acd
Simplify string_view detection
2018-09-23 07:29:35 -07:00
Victor Zverovich
2def9e4c82
Remove FMT_DTOR_NOEXCEPT
2018-09-22 18:51:32 -07:00
Victor Zverovich
ff6e46ed97
More cleanup
2018-09-22 16:00:34 -07:00
Victor Zverovich
715f2b4c00
Remove require_wchar and internalize no_formatter_error
2018-09-21 18:25:24 -07:00
Victor Zverovich
4f043f8e00
Bump version
2018-09-21 10:07:56 -07:00
Victor Zverovich
cc02cbc455
Fix formatting
2018-09-21 09:48:21 -07:00
Jonathan Müller
9d2221b954
Improve error message when formatting unknown types
2018-09-20 07:01:39 -07:00
Victor Zverovich
3f4984fb36
Clean core-test and fix linkage errors on older gcc
2018-09-19 12:24:38 -07:00
Victor Zverovich
bc26fbf1b0
Move experimental color API to fmt/color.h
2018-09-12 09:04:26 -07:00
Victor Zverovich
c8a8464f7d
Optimize buffer construction
2018-09-12 08:45:14 -07:00
Victor Zverovich
10c7f89351
Optimize format string processing on dumb compilers
2018-09-09 08:13:06 -07:00
Victor Zverovich
59c268a5f8
Use strlen when possible since it's constexpr on gcc
2018-09-08 16:17:22 -07:00
Victor Zverovich
918bb1ce8f
Optimize argument capture
2018-09-08 15:29:32 -07:00
Victor Zverovich
cc10b4607f
Make format_to faster on older gcc
2018-09-08 07:22:29 -07:00
Victor Zverovich
fbc38b9083
Pass heavy arguments by ref
2018-08-31 15:17:18 -07:00
Victor Zverovich
8dc69b9da9
Workaround a bug in Intellisense
2018-08-29 20:40:54 -07:00
Victor Zverovich
987514761e
Make convert_to_int public ( #818 )
2018-08-22 07:40:06 -07:00
Victor Zverovich
4061a0d35d
Parameterize vformat to support custom char types
2018-08-05 10:44:59 -07:00
Victor Zverovich
ce19309d09
Workaround a bug in icc 15
2018-07-26 07:59:41 -07:00
Victor Zverovich
c684349195
Move contiguous version of format_to to fmt/core.h
2018-07-22 18:09:22 -07:00
Victor Zverovich
8db14efa84
util-test -> core-test and minor cleanup
2018-07-22 17:05:23 -07:00
Victor Zverovich
5befe6584d
Remove fmt/folly.h and clean up core API
2018-07-22 14:42:25 -07:00
Victor Zverovich
35538ca66c
Merge more format overloads
2018-07-22 12:24:47 -07:00
Victor Zverovich
4f16409730
Merge format overloads using SFINAE
2018-07-22 08:06:42 -07:00
Victor Zverovich
2a4e948864
Add UTF-8 types
2018-07-22 06:36:21 -07:00
MikePopoloski
7b4f170c94
Fix warning about using old-style cast
2018-07-20 17:07:23 -07:00
MikePopoloski
b1d10a2884
Add support for dynamic arg sets
...
This allows construction of basic_format_args from a dynamic set of arguments. The syntax is a little clunky and could probably be improved but this at least enables the functionality.
2018-07-20 17:07:23 -07:00
Victor Zverovich
cf2719bd12
Add support for types explicitly convertible to wstring_view
2018-07-18 19:12:10 -07:00
Victor Zverovich
73bed45b7a
Add support for types explicitly convertible to fmt::string_view
2018-07-18 14:42:26 -07:00
Victor Zverovich
6eaa507473
Fix global initialization issue ( #807 )
2018-07-18 09:49:21 -07:00
Victor Zverovich
a9e261599b
Minor cleanup
2018-07-17 08:54:22 -07:00
Victor Zverovich
8615ff2acc
Micro-optimize argument retrieval
2018-07-15 07:28:31 -07:00
Victor Zverovich
916ed99dab
Micro-optimize argument retrieval
2018-07-14 15:28:55 -07:00