Book Image

The Modern C++ Challenge

Book Image

The Modern C++ Challenge

Overview of this book

C++ is one of the most widely-used programming languages and has applications in a variety of fields, such as gaming, GUI programming, and operating systems, to name a few. Through the years, C++ has evolved into (and remains) one of the top choices for software developers worldwide. This book will show you some notable C++ features and how to implement them to meet your application needs. Each problem is unique and doesn't just test your knowledge of the language; it tests your ability to think out of the box and come up with the best solutions. With varying levels of difficulty, you'll be faced with a wide variety of challenges. And in case you're stumped, you don't have to worry: we've got the best solutions to the problems in the book. So are you up for the challenge?
Table of Contents (15 chapters)

Solutions

23. Binary to string conversion

In order to write a general-purpose function that can handle various sorts of ranges, such as an std::array, std::vector, a C-like array, or others, we should write a function template. In the following, there are two overloads; one that takes a container as an argument and a flag indicating the casing style, and one that takes a pair of iterators (to mark the first and then one past the end element of the range) and the flag to indicate casing. The content of the range is written to an std::ostringstream object, with the appropriate I/O manipulators, such as width, filling character, or case flag:

template <typename Iter>
std::string bytes_to_hexstr(Iter begin, Iter end,
...