| #ifndef CAFFE2_CORE_COMMON_H_ |
| #define CAFFE2_CORE_COMMON_H_ |
| |
| #include <algorithm> |
| #include <cmath> |
| #include <map> |
| #include <memory> |
| #include <numeric> |
| #include <set> |
| #include <sstream> |
| #include <string> |
| #include <type_traits> |
| #include <vector> |
| |
| #ifdef __APPLE__ |
| #include <TargetConditionals.h> |
| #endif |
| |
| #if defined(_MSC_VER) |
| #include <io.h> |
| #else |
| #include <unistd.h> |
| #endif |
| |
| // Macros used during the build of this caffe2 instance. This header file |
| // is automatically generated by the cmake script during build. |
| #include "caffe2/core/macros.h" |
| |
| #include <c10/macros/Macros.h> |
| |
| namespace caffe2 { |
| |
| // Using statements for common classes that we refer to in caffe2 very often. |
| // Note that we only place it inside caffe2 so the global namespace is not |
| // polluted. |
| /* using override */ |
| using std::set; |
| using std::string; |
| using std::unique_ptr; |
| using std::vector; |
| |
| // Define alignment macro that is cross platform |
| #if (defined _MSC_VER && !defined NOMINMAX) |
| #define NOMINMAX |
| #endif |
| |
| using std::make_unique; |
| |
| #if defined(__ANDROID__) && !defined(__NDK_MAJOR__) |
| using ::round; |
| #else |
| using std::round; |
| #endif // defined(__ANDROID__) && !defined(__NDK_MAJOR__) |
| |
| // Returns which setting Caffe2 was configured and built with (exported from |
| // CMake) |
| TORCH_API const std::map<string, string>& GetBuildOptions(); |
| |
| } // namespace caffe2 |
| |
| #endif // CAFFE2_CORE_COMMON_H_ |