ATLAS Offline Software
Loading...
Searching...
No Matches
ColumnarMode.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef COLUMNAR_MODE_COLUMNAR_MODE_H
6#define COLUMNAR_MODE_COLUMNAR_MODE_H
7
8#include <string>
9
10#ifndef COLUMNAR_MODE_NAME
11#error "COLUMNAR_MODE_NAME was not defined in the build configuration"
12#endif
13#ifndef COLUMNAR_MODE_SUFFIX
14#error "COLUMNAR_MODE_SUFFIX was not defined in the build configuration"
15#endif
16
17namespace columnar
18{
19 struct COLUMNAR_MODE_NAME;
20 using ColumnarMode = COLUMNAR_MODE_NAME;
21
22#define STR_IMPL(x) #x
23#define STR(x) STR_IMPL(x)
24
31 inline std::string add_cmode (const std::string& name, const char *suffix = STR(COLUMNAR_MODE_SUFFIX))
32 {
33 return name + suffix;
34 }
35
36#undef STR_IMPL
37#undef STR
38}
39
40#define ADD_CMODE_JOIN(name,mode) name##mode
41#define ADD_CMODE_JOIN2(name,mode) ADD_CMODE_JOIN(name,mode)
42#define ADD_CMODE(name) ADD_CMODE_JOIN2(name,COLUMNAR_MODE_SUFFIX)
43
44#endif // COLUMNAR_MODE_COLUMNAR_MODE_H
#define STR(x)
std::string add_cmode(const std::string &name, const char *suffix=STR(COLUMNAR_MODE_SUFFIX))
add the columnar mode suffix to a given string
COLUMNAR_MODE_NAME ColumnarMode