| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | .. _string-formatting-api:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | *************
 | 
					
						
							|  |  |  | API Reference
 | 
					
						
							|  |  |  | *************
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | All functions and classes provided by the C++ Format library reside
 | 
					
						
							|  |  |  | in namespace ``fmt`` and macros have prefix ``FMT_``. For brevity the
 | 
					
						
							|  |  |  | namespace is usually omitted in examples.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Formatting functions
 | 
					
						
							|  |  |  | ====================
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The following functions use :ref:`format string syntax <syntax>` similar
 | 
					
						
							|  |  |  | to the one used by Python's `str.format
 | 
					
						
							|  |  |  | <http://docs.python.org/3/library/stdtypes.html#str.format>`_ function.
 | 
					
						
							|  |  |  | They take *format_str* and *args* as arguments.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | *format_str* is a format string that contains literal text and replacement
 | 
					
						
							|  |  |  | fields surrounded by braces ``{}``. The fields are replaced with formatted
 | 
					
						
							|  |  |  | arguments in the resulting string.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | *args* is an argument list representing arbitrary arguments.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. _format:
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-26 09:09:23 -07:00
										 |  |  | .. doxygenfunction:: format(CStringRef, ArgList)
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | .. _print:
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-26 09:09:23 -07:00
										 |  |  | .. doxygenfunction:: print(CStringRef, ArgList)
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-26 09:09:23 -07:00
										 |  |  | .. doxygenfunction:: print(std::FILE *, CStringRef, ArgList)
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-26 09:09:23 -07:00
										 |  |  | .. doxygenfunction:: print(std::ostream&, CStringRef, ArgList)
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | Printf formatting functions
 | 
					
						
							|  |  |  | ===========================
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The following functions use `printf format string syntax
 | 
					
						
							|  |  |  | <http://pubs.opengroup.org/onlinepubs/009695399/functions/fprintf.html>`_ with
 | 
					
						
							|  |  |  | a POSIX extension for positional arguments.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-26 09:09:23 -07:00
										 |  |  | .. doxygenfunction:: printf(CStringRef, ArgList)
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-26 09:09:23 -07:00
										 |  |  | .. doxygenfunction:: fprintf(std::FILE*, CStringRef, ArgList)
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-26 09:09:23 -07:00
										 |  |  | .. doxygenfunction:: sprintf(CStringRef, ArgList)
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | Write API
 | 
					
						
							|  |  |  | =========
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. doxygenclass:: fmt::BasicWriter
 | 
					
						
							|  |  |  |    :members: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. doxygenclass:: fmt::BasicMemoryWriter
 | 
					
						
							|  |  |  |    :members: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-01 18:10:09 -08:00
										 |  |  | .. doxygenclass:: fmt::BasicArrayWriter
 | 
					
						
							|  |  |  |    :members: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-18 08:46:25 -08:00
										 |  |  | .. doxygenfunction:: bin
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-18 08:46:25 -08:00
										 |  |  | .. doxygenfunction:: oct
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-18 08:46:25 -08:00
										 |  |  | .. doxygenfunction:: hex
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-18 08:46:25 -08:00
										 |  |  | .. doxygenfunction:: hexu
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-19 18:04:32 -07:00
										 |  |  | .. doxygenfunction:: pad(int, unsigned, Char)
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | Utilities
 | 
					
						
							|  |  |  | =========
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-10 09:32:59 +08:00
										 |  |  | .. doxygenfunction:: fmt::arg(StringRef, const T&)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. doxygendefine:: FMT_CAPTURE
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | .. doxygendefine:: FMT_VARIADIC
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. doxygenclass:: fmt::ArgList
 | 
					
						
							|  |  |  |    :members: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. doxygenclass:: fmt::BasicStringRef
 | 
					
						
							|  |  |  |    :members: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-26 09:09:23 -07:00
										 |  |  | .. doxygenclass:: fmt::BasicCStringRef
 | 
					
						
							|  |  |  |    :members: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-20 06:42:55 -07:00
										 |  |  | .. doxygenclass:: fmt::Buffer
 | 
					
						
							| 
									
										
										
										
											2015-03-20 06:46:39 -07:00
										 |  |  |    :protected-members: | 
					
						
							| 
									
										
										
										
											2015-03-20 06:42:55 -07:00
										 |  |  |    :members: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | System Errors
 | 
					
						
							|  |  |  | =============
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. doxygenclass:: fmt::SystemError
 | 
					
						
							|  |  |  |    :members: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. doxygenclass:: fmt::WindowsError
 | 
					
						
							|  |  |  |    :members: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. _formatstrings:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Custom allocators
 | 
					
						
							|  |  |  | =================
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The C++ Format library supports custom dynamic memory allocators.
 | 
					
						
							|  |  |  | A custom allocator class can be specified as a template argument to
 | 
					
						
							| 
									
										
										
										
											2014-12-18 08:36:53 -08:00
										 |  |  | :class:`fmt::BasicMemoryWriter`::
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     typedef fmt::BasicMemoryWriter<char, CustomAllocator> CustomMemoryWriter;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | It is also possible to write a formatting function that uses a custom
 | 
					
						
							|  |  |  | allocator::
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     typedef std::basic_string<char, std::char_traits<char>, CustomAllocator> CustomString;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-26 09:09:23 -07:00
										 |  |  |     CustomString format(CustomAllocator alloc, fmt::CStringRef format_str,
 | 
					
						
							| 
									
										
										
										
											2014-10-10 08:40:35 -07:00
										 |  |  |                         fmt::ArgList args) {
 | 
					
						
							|  |  |  |       CustomMemoryWriter writer(alloc);
 | 
					
						
							|  |  |  |       writer.write(format_str, args);
 | 
					
						
							|  |  |  |       return CustomString(writer.data(), writer.size(), alloc);
 | 
					
						
							|  |  |  |     }
 | 
					
						
							| 
									
										
										
										
											2015-06-26 09:09:23 -07:00
										 |  |  |     FMT_VARIADIC(CustomString, format, CustomAllocator, fmt::CStringRef)
 |