Logo ROOT  
Reference Guide
Utility.h
Go to the documentation of this file.
1/*
2 * Project: RooFit
3 * Authors:
4 * RA, Roel Aaij, NIKHEF
5 * PB, Patrick Bos, Netherlands eScience Center, p.bos@esciencecenter.nl
6 *
7 * Copyright (c) 2021, CERN
8 *
9 * Redistribution and use in source and binary forms,
10 * with or without modification, are permitted according to the terms
11 * listed in LICENSE (http://roofit.sourceforge.net/license.txt)
12 */
13
14#ifndef SERIALIZE_UTILITY_H
15#define SERIALIZE_UTILITY_H 1
16
17#if defined(__clang__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 10))
18#define HAVE_TRIVIALLY_COPYABLE 1
19#elif defined(__GNUC__) && __GNUC__ >= 5
20#define HAVE_TRIVIALLY_COPYABLE 1
21#else
22#undef HAVE_TRIVIALLY_COPYABLE
23#endif
24
25#include <type_traits>
26
27namespace ZMQ {
28namespace Detail {
29
30#if defined(HAVE_TRIVIALLY_COPYABLE)
31template <class T>
32using simple_object = std::is_trivially_copyable<T>;
33#else
34template <class T>
35using simple_object = std::is_pod<T>;
36#endif
37
38// is trivial
39template <class T>
41 : std::conditional<simple_object<typename std::decay<T>::type>::value, std::true_type, std::false_type>::type {
42};
43
44} // namespace Detail
45} // namespace ZMQ
46
47#endif // SERIALIZE_UTILITY_H
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
std::is_pod< T > simple_object
Definition: Utility.h:35
Definition: functions.h:19