Ruby 4.0.6p0 (2026-07-14 revision 03b6d3f8898a28604fe6cb00eae3226b821168f4)
msvc.h
1#ifndef RBIMPL_COMPILER_IS_MSVC_H /*-*-C++-*-vi:se ft=cpp:*/
2#define RBIMPL_COMPILER_IS_MSVC_H
22#include "ruby/internal/compiler_is/clang.h"
23#include "ruby/internal/compiler_is/intel.h"
24
25#if ! defined(_MSC_VER)
26# define RBIMPL_COMPILER_IS_MSVC 0
27
28#elif RBIMPL_COMPILER_IS(Clang)
29# define RBIMPL_COMPILER_IS_MSVC 0
30
31#elif RBIMPL_COMPILER_IS(Intel)
32# define RBIMPL_COMPILER_IS_MSVC 0
33
34#elif _MSC_VER >= 1400
35# define RBIMPL_COMPILER_IS_MSVC 1
36# /* _MSC_FULL_VER = XXYYZZZZZ */
37# define RBIMPL_COMPILER_VERSION_MAJOR (_MSC_FULL_VER / 10000000)
38# define RBIMPL_COMPILER_VERSION_MINOR (_MSC_FULL_VER % 10000000 / 100000)
39# define RBIMPL_COMPILER_VERSION_PATCH (_MSC_FULL_VER % 100000)
40
41#else
42# error Unsupported MSVC version
43#endif
44
45#endif /* RBIMPL_COMPILER_IS_MSVC_H */