theypsilon / concat Goto Github PK
View Code? Open in Web Editor NEWA string concatenation utility in a single header file for C++11.
License: Boost Software License 1.0
A string concatenation utility in a single header file for C++11.
License: Boost Software License 1.0
concat(1,2,3,std::endl); // error: requires 3 arguments, but 4 were provided
It looks like is not possible to infer between the char version of std::endl and wchar_t, and therefore it displays that weird error message. Because a parameter pack is used in order to allow variadic parameters with perfect forwarding, I see no way to help the compailer to infer the std::endl type in a arbitrary position of the parameter list.
std::ostream& (*s)(std::ostream&) = std::endl;
std::cout << concat(1,2,3, s);
works as expected, but doesn't feel right.
C++11 added get_money, put_money, get_time and put_time, but they are not yet handled as manipulators (this means, they will introduce a separator when a separator is noticeable).
Is it possible to implement is_parametrized_manipulator without having to list all the parametrized manipulators from here?
Currently only covering std::setprecision is covered, and would be necessary to have all the other parametrized manipulators in the test suite.
So now that std::pair
is supported, it would be great to be able to have different delimiters at the start/end of sequences in addition to between the elements of a sequence, so a list of tuples might be rendered like:
(1, 2, 3), (3, 2, 1), ....
Otherwise there's no way to distinguish this:
list<int> ints ({1, 2, 3, 4, 5, 6})
cout << concat (separator (","), ints) << "\n";
from this:
list<pair<int, int>> pairs ({{1, 2}, {3, 4}, {5, 6});
cout << concat (separator (","), pairs) << "\n";
I think you're trying to keep things simple, so perhaps this is a feature too far.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.