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
Globally accessible architectural configuration.
Definition: config.h:132
void get(const std::string &executable)
configt::cppt::cpp_standardt default_cxx_standard
Definition: ms_cl_version.h:29
unsigned v_minor
Definition: ms_cl_version.h:22
enum ms_cl_versiont::targett target
bool is_at_least(unsigned v_major, unsigned v_minor=0) const
configt::ansi_ct::c_standardt default_c_standard
Definition: ms_cl_version.h:28
unsigned v_major
Definition: ms_cl_version.h:22
std::ostream & operator<<(std::ostream &, const ms_cl_versiont &)