Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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
int type
Definition TGX11.cxx:121
std::is_pod< T > simple_object
Definition Utility.h:35