Add basic C++ output streaming support #2551
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add some improvements to the
Print
class, with support from newString
methods.A full STL stream implementation would require considerable work, with iostream wrappers, etc.
This PR adds basic support to the
Print
classs for the<<
insertion streaming operator. Avoidingprintf
is generally a good idea, and strong C++ types can do a much better job.I've started going updating the sample projects using this capability to improve code flow and readability, but not yet complete. Let's see what people think before going any further!
C++ streaming operation <<
Building output is commonly done like this::
We can now do this::
Number Printing
Examples::
Similar extensions are provided for
String
construction::Field-width control
Supported via String methods::
Strongly-typed enumerations
Use of
enum class
is good practice as it produces strongly-typed and scoped values.Most of these are also provided with a standard
toString(E)
function overload.This allows string equivalents to be printed very easily::