formatted, commentje
This commit is contained in:
parent
a0cff27590
commit
851017cc62
2 changed files with 14 additions and 13 deletions
|
@ -7,19 +7,19 @@
|
|||
|
||||
// Normal
|
||||
template <typename T>
|
||||
struct binary{
|
||||
struct binary {
|
||||
T thing;
|
||||
binary(T const t):thing(t){}
|
||||
binary(binary const& c):thing(c.thing){}
|
||||
binary(T const t):thing(t) {}
|
||||
binary(binary const& c):thing(c.thing) {}
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
binary<T> make_binary(T const t){
|
||||
binary<T> make_binary(T const t) {
|
||||
return binary<T>(t);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
std::ostream& operator<<(std::ostream& out, binary<T> const& rhs){
|
||||
std::ostream& operator<<(std::ostream& out, binary<T> const& rhs) {
|
||||
static_assert(std::is_pod<T>::value, "Please specialise this function if your type is not POD");
|
||||
static_assert(!std::is_pointer<T>::value, "Writing pointer");
|
||||
out.write(reinterpret_cast<const char*>(&(rhs.thing)), sizeof(rhs.thing));
|
||||
|
@ -27,21 +27,22 @@ std::ostream& operator<<(std::ostream& out, binary<T> const& rhs){
|
|||
}
|
||||
|
||||
// Array
|
||||
// NOTE: it uses references...
|
||||
template <typename T, size_t N>
|
||||
struct binary_arr{
|
||||
T const (& thing)[N];
|
||||
binary_arr(const T (& t)[N]):thing(t){}
|
||||
binary_arr(binary_arr const& c):thing(c.thing){}
|
||||
struct binary_arr {
|
||||
T const(& thing)[N];
|
||||
binary_arr(const T(& t)[N]):thing(t) {}
|
||||
binary_arr(binary_arr const& c):thing(c.thing) {}
|
||||
};
|
||||
|
||||
template <typename T, size_t N>
|
||||
binary_arr<T, N> make_binary(const T (& t)[N]){
|
||||
binary_arr<T, N> make_binary(const T(& t)[N]) {
|
||||
static_assert(N>=0, "lijp");
|
||||
return binary_arr<T, N>(t);
|
||||
}
|
||||
|
||||
template <typename T, size_t N>
|
||||
std::ostream& operator<<(std::ostream& out, binary_arr<T, N> const& rhs){
|
||||
std::ostream& operator<<(std::ostream& out, binary_arr<T, N> const& rhs) {
|
||||
static_assert(std::is_pod<T>::value, "Please specialise this function if your type is not POD");
|
||||
static_assert(!std::is_pointer<T>::value, "Writing pointer");
|
||||
out.write(reinterpret_cast<const char*>(&(rhs.thing)), sizeof(rhs.thing));
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include <iostream>
|
||||
#include "binary_output.hpp"
|
||||
|
||||
int main(){
|
||||
int main() {
|
||||
std::cout << make_binary(1684234849) << std::endl;
|
||||
std::cout << make_binary("A c-style array") << std::endl;
|
||||
|
||||
|
|
Reference in a new issue