/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Alignment/Geners/interface/IOIsExternal.hh
82 строки
3 KB
Cms Build
Clang-Format
08 май 2019, 15:16
08 май 2019, 15:16
7614b05
Код
Авторство
О чём код?
#ifndef GENERS_IOISEXTERNAL_HH_ #define GENERS_IOISEXTERNAL_HH_ namespace gs { template <class T> struct IOIsExternal { enum { value = 0 }; }; } // namespace gs // Use the following macro (outside of any namespace) // to declare some type as external for I/O purposes // #define gs_declare_type_external(T) /**/ \ namespace gs { \ template <> \ struct IOIsExternal<T> { \ enum { value = 1 }; \ }; \ template <> \ struct IOIsExternal<T const> { \ enum { value = 1 }; \ }; \ template <> \ struct IOIsExternal<T volatile> { \ enum { value = 1 }; \ }; \ template <> \ struct IOIsExternal<T const volatile> { \ enum { value = 1 }; \ }; \ } // Use the following macro (outside of any namespace) // to declare some template parameterized by one argument // as external for I/O purposes // #define gs_declare_template_external_T(name) /**/ \ namespace gs { \ template <class T> \ struct IOIsExternal<name<T>> { \ enum { value = 1 }; \ }; \ template <class T> \ struct IOIsExternal<const name<T>> { \ enum { value = 1 }; \ }; \ template <class T> \ struct IOIsExternal<volatile name<T>> { \ enum { value = 1 }; \ }; \ template <class T> \ struct IOIsExternal<const volatile name<T>> { \ enum { value = 1 }; \ }; \ } // Use the following macro (outside of any namespace) // to declare some template parameterized by two arguments // as external for I/O purposes // #define gs_declare_template_external_TT(name) /**/ \ namespace gs { \ template <class T, class U> \ struct IOIsExternal<name<T, U>> { \ enum { value = 1 }; \ }; \ template <class T, class U> \ struct IOIsExternal<const name<T, U>> { \ enum { value = 1 }; \ }; \ template <class T, class U> \ struct IOIsExternal<volatile name<T, U>> { \ enum { value = 1 }; \ }; \ template <class T, class U> \ struct IOIsExternal<const volatile name<T, U>> { \ enum { value = 1 }; \ }; \ } #endif // GENERS_IOISEXTERNAL_HH_