CBMC
ms_cl_version.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Visual Studio CL version numbering scheme
4 
5 Author: Daniel Kroening
6 
7 Date: August 2018
8 
9 \*******************************************************************/
10 
11 #ifndef CPROVER_GOTO_CC_MS_CL_VERSION_H
12 #define CPROVER_GOTO_CC_MS_CL_VERSION_H
13 
14 #include <iosfwd>
15 #include <string>
16 
17 #include <util/config.h>
18 
20 {
21 public:
22  unsigned v_major, v_minor;
23 
24  void get(const std::string &executable);
25 
26  bool is_at_least(unsigned v_major, unsigned v_minor = 0) const;
27 
30 
32  : v_major(0),
33  v_minor(0),
34  default_c_standard(configt::ansi_ct::c_standardt::C89),
35  default_cxx_standard(configt::cppt::cpp_standardt::CPP98)
36  {
37  }
38 
39  enum class targett
40  {
41  UNKNOWN,
42  x86,
43  x64,
44  ARM
45  } target;
46 };
47 
48 std::ostream &operator<<(std::ostream &, const ms_cl_versiont &);
49 
50 #endif // CPROVER_GOTO_CC_MS_CL_VERSION_H
configt::cppt::cpp_standardt
cpp_standardt
Definition: config.h:285
operator<<
std::ostream & operator<<(std::ostream &, const ms_cl_versiont &)
Definition: ms_cl_version.cpp:70
ms_cl_versiont::v_major
unsigned v_major
Definition: ms_cl_version.h:22
ms_cl_versiont::v_minor
unsigned v_minor
Definition: ms_cl_version.h:22
configt
Globally accessible architectural configuration.
Definition: config.h:118
ms_cl_versiont::targett::UNKNOWN
@ UNKNOWN
ms_cl_versiont::default_cxx_standard
configt::cppt::cpp_standardt default_cxx_standard
Definition: ms_cl_version.h:29
ms_cl_versiont::default_c_standard
configt::ansi_ct::c_standardt default_c_standard
Definition: ms_cl_version.h:28
ms_cl_versiont::targett
targett
Definition: ms_cl_version.h:39
ms_cl_versiont::targett::ARM
@ ARM
ms_cl_versiont
Definition: ms_cl_version.h:19
ms_cl_versiont::targett::x86
@ x86
config.h
ms_cl_versiont::is_at_least
bool is_at_least(unsigned v_major, unsigned v_minor=0) const
Definition: ms_cl_version.cpp:65
ms_cl_versiont::ms_cl_versiont
ms_cl_versiont()
Definition: ms_cl_version.h:31
ms_cl_versiont::targett::x64
@ x64
ms_cl_versiont::get
void get(const std::string &executable)
Definition: ms_cl_version.cpp:18
configt::ansi_ct::c_standardt
c_standardt
Definition: config.h:142
ms_cl_versiont::target
enum ms_cl_versiont::targett target