Page MenuHomePhorge

type_helper.hpp
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

type_helper.hpp

/*******************************************************************************
*
* File: type_helper.hpp
*
* Contents: Helper facilities for type-related stuff.
*
* Copyright 2017
*
* Author: David Juhasz (david.juhasz@tuwien.ac.at)
*
******************************************************************************/
#ifndef ROSA_SUPPORT_TYPE_HELPER_HPP
#define ROSA_SUPPORT_TYPE_HELPER_HPP
#include <cstdint>
namespace rosa {
/* ************************************************************************** *
* Printable *
* ************************************************************************** */
// A value of type [u]int8_t is treated as a character when being put to an
// output stream, which can result in invisible characters being printed. To
// avoid that, such a value needs to be casted to a wider type. It can be done
// by using the following template to find a target type to cast our value to.
// NOTE: There is a preprocessor macro below which can be used instead of the
// tedious typename stuff.
template <typename T>
struct PrintableType {
using Type = T;
};
template <>
struct PrintableType<uint8_t> {
using Type = unsigned int;
};
template <>
struct PrintableType<int8_t> {
using Type = int;
};
#define PRINTABLE(T) typename PrintableType<T>::Type
} // End namespace rosa
#endif // ROSA_SUPPORT_TYPE_HELPER_HPP

File Metadata

Mime Type
text/x-c++
Expires
Sun, Mar 1, 5:57 PM (21 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
287546
Default Alt Text
type_helper.hpp (1 KB)

Event Timeline