BioCMAMC-ST
common.hpp
1#ifndef __COMMON_EXPORT_HPP__
2#define __COMMON_EXPORT_HPP__
3
4#include <Kokkos_Core_fwd.hpp>
5#include <string_view>
6
7using ComputeSpace = Kokkos::DefaultExecutionSpace;
8using HostSpace = Kokkos::DefaultHostExecutionSpace;
9
10#ifdef ENABLE_KOKKOS_PROFILING
11# include <Kokkos_Profiling_ScopedRegion.hpp>
12# define PROFILE_SECTION(__label_section__) \
13 Kokkos::Profiling::ScopedRegion region(__label_section__);
14#else
15# define PROFILE_SECTION(__label_section__) ;
16#endif
17
18#define EIGEN_INDEX(__VALUE__) static_cast<int>(__VALUE__)
19
20#ifndef NDEBUG
21# include <iostream>
22# include <source_location>
23class Canary
24{
25public:
26 Canary() = delete;
27 Canary(const Canary&) = delete;
28 Canary(Canary&&) = delete;
29 Canary& operator=(const Canary&) = delete;
30 Canary& operator=(Canary&&) = delete;
31
32 explicit Canary(std::string_view lbl, std::source_location location)
33 : _lbl(lbl)
34 {
35 // std::cout << "\033[1;31m" << location.function_name() << "\033[0m " <<
36 // lbl << std::endl;
37 std::cout << location.function_name() << ": " << lbl << std::endl;
38 }
39
41 {
42 std::cout << "END " << _lbl << std::endl;
43 }
44
45private:
46 std::string _lbl;
47};
48# define MkCanary(x) Canary(x, std::source_location());
49#else
50# define MkCanary(x)
51#endif
52
53#endif //__COMMON_EXPORT_HPP__
Canary & operator=(const Canary &)=delete
~Canary()
Definition common.hpp:40
Canary(Canary &&)=delete
Canary()=delete
Canary(std::string_view lbl, std::source_location location)
Definition common.hpp:32
Canary(const Canary &)=delete
Canary & operator=(Canary &&)=delete
std::string _lbl
Definition common.hpp:46