working code
This commit is contained in:
		
							
								
								
									
										63
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
			
		||||
{
 | 
			
		||||
    "C_Cpp.default.configurationProvider": "go2sh.cmake-integration",
 | 
			
		||||
    "files.associations": {
 | 
			
		||||
        "cctype": "cpp",
 | 
			
		||||
        "clocale": "cpp",
 | 
			
		||||
        "cmath": "cpp",
 | 
			
		||||
        "cstdarg": "cpp",
 | 
			
		||||
        "cstddef": "cpp",
 | 
			
		||||
        "cstdio": "cpp",
 | 
			
		||||
        "cstdlib": "cpp",
 | 
			
		||||
        "cstring": "cpp",
 | 
			
		||||
        "ctime": "cpp",
 | 
			
		||||
        "cwchar": "cpp",
 | 
			
		||||
        "cwctype": "cpp",
 | 
			
		||||
        "array": "cpp",
 | 
			
		||||
        "atomic": "cpp",
 | 
			
		||||
        "bit": "cpp",
 | 
			
		||||
        "*.tcc": "cpp",
 | 
			
		||||
        "chrono": "cpp",
 | 
			
		||||
        "condition_variable": "cpp",
 | 
			
		||||
        "cstdint": "cpp",
 | 
			
		||||
        "deque": "cpp",
 | 
			
		||||
        "list": "cpp",
 | 
			
		||||
        "map": "cpp",
 | 
			
		||||
        "set": "cpp",
 | 
			
		||||
        "unordered_map": "cpp",
 | 
			
		||||
        "unordered_set": "cpp",
 | 
			
		||||
        "vector": "cpp",
 | 
			
		||||
        "exception": "cpp",
 | 
			
		||||
        "algorithm": "cpp",
 | 
			
		||||
        "functional": "cpp",
 | 
			
		||||
        "iterator": "cpp",
 | 
			
		||||
        "memory": "cpp",
 | 
			
		||||
        "memory_resource": "cpp",
 | 
			
		||||
        "numeric": "cpp",
 | 
			
		||||
        "optional": "cpp",
 | 
			
		||||
        "random": "cpp",
 | 
			
		||||
        "ratio": "cpp",
 | 
			
		||||
        "string": "cpp",
 | 
			
		||||
        "string_view": "cpp",
 | 
			
		||||
        "system_error": "cpp",
 | 
			
		||||
        "tuple": "cpp",
 | 
			
		||||
        "type_traits": "cpp",
 | 
			
		||||
        "utility": "cpp",
 | 
			
		||||
        "fstream": "cpp",
 | 
			
		||||
        "future": "cpp",
 | 
			
		||||
        "initializer_list": "cpp",
 | 
			
		||||
        "iosfwd": "cpp",
 | 
			
		||||
        "iostream": "cpp",
 | 
			
		||||
        "istream": "cpp",
 | 
			
		||||
        "limits": "cpp",
 | 
			
		||||
        "mutex": "cpp",
 | 
			
		||||
        "new": "cpp",
 | 
			
		||||
        "ostream": "cpp",
 | 
			
		||||
        "sstream": "cpp",
 | 
			
		||||
        "stdexcept": "cpp",
 | 
			
		||||
        "streambuf": "cpp",
 | 
			
		||||
        "thread": "cpp",
 | 
			
		||||
        "cinttypes": "cpp",
 | 
			
		||||
        "typeinfo": "cpp",
 | 
			
		||||
        "variant": "cpp"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
cmake_minimum_required(VERSION 3.15)
 | 
			
		||||
project(another_studproject)
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CXX_STANDARD 17)
 | 
			
		||||
set(CMAKE_CXX_FLAGS "-O3 -flto=thin")
 | 
			
		||||
add_executable(another_studproject 
 | 
			
		||||
                ./src/includes/generator.h
 | 
			
		||||
                ./src/generator.cpp
 | 
			
		||||
                ./src/includes/tests.h
 | 
			
		||||
                ./src/includes/aggregate_tests.h
 | 
			
		||||
                main.cpp
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										376
									
								
								cmake-build-debug/CMakeCache.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										376
									
								
								cmake-build-debug/CMakeCache.txt
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										76
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CMakeCCompiler.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CMakeCCompiler.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
set(CMAKE_C_COMPILER "/usr/bin/clang")
 | 
			
		||||
set(CMAKE_C_COMPILER_ARG1 "")
 | 
			
		||||
set(CMAKE_C_COMPILER_ID "Clang")
 | 
			
		||||
set(CMAKE_C_COMPILER_VERSION "9.0.0")
 | 
			
		||||
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
 | 
			
		||||
set(CMAKE_C_COMPILER_WRAPPER "")
 | 
			
		||||
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
 | 
			
		||||
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert")
 | 
			
		||||
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
 | 
			
		||||
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
 | 
			
		||||
set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
 | 
			
		||||
 | 
			
		||||
set(CMAKE_C_PLATFORM_ID "Linux")
 | 
			
		||||
set(CMAKE_C_SIMULATE_ID "")
 | 
			
		||||
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
 | 
			
		||||
set(CMAKE_C_SIMULATE_VERSION "")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set(CMAKE_AR "/usr/bin/ar")
 | 
			
		||||
set(CMAKE_C_COMPILER_AR "/usr/bin/llvm-ar")
 | 
			
		||||
set(CMAKE_RANLIB "/usr/bin/ranlib")
 | 
			
		||||
set(CMAKE_C_COMPILER_RANLIB "/usr/bin/llvm-ranlib")
 | 
			
		||||
set(CMAKE_LINKER "/usr/bin/ld")
 | 
			
		||||
set(CMAKE_MT "")
 | 
			
		||||
set(CMAKE_COMPILER_IS_GNUCC )
 | 
			
		||||
set(CMAKE_C_COMPILER_LOADED 1)
 | 
			
		||||
set(CMAKE_C_COMPILER_WORKS TRUE)
 | 
			
		||||
set(CMAKE_C_ABI_COMPILED TRUE)
 | 
			
		||||
set(CMAKE_COMPILER_IS_MINGW )
 | 
			
		||||
set(CMAKE_COMPILER_IS_CYGWIN )
 | 
			
		||||
if(CMAKE_COMPILER_IS_CYGWIN)
 | 
			
		||||
  set(CYGWIN 1)
 | 
			
		||||
  set(UNIX 1)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
set(CMAKE_C_COMPILER_ENV_VAR "CC")
 | 
			
		||||
 | 
			
		||||
if(CMAKE_COMPILER_IS_MINGW)
 | 
			
		||||
  set(MINGW 1)
 | 
			
		||||
endif()
 | 
			
		||||
set(CMAKE_C_COMPILER_ID_RUN 1)
 | 
			
		||||
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
 | 
			
		||||
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
 | 
			
		||||
set(CMAKE_C_LINKER_PREFERENCE 10)
 | 
			
		||||
 | 
			
		||||
# Save compiler ABI information.
 | 
			
		||||
set(CMAKE_C_SIZEOF_DATA_PTR "8")
 | 
			
		||||
set(CMAKE_C_COMPILER_ABI "ELF")
 | 
			
		||||
set(CMAKE_C_LIBRARY_ARCHITECTURE "")
 | 
			
		||||
 | 
			
		||||
if(CMAKE_C_SIZEOF_DATA_PTR)
 | 
			
		||||
  set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(CMAKE_C_COMPILER_ABI)
 | 
			
		||||
  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(CMAKE_C_LIBRARY_ARCHITECTURE)
 | 
			
		||||
  set(CMAKE_LIBRARY_ARCHITECTURE "")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
 | 
			
		||||
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
 | 
			
		||||
  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/local/include;/usr/lib/clang/9.0.0/include;/usr/include")
 | 
			
		||||
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
 | 
			
		||||
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib64/gcc/x86_64-pc-linux-gnu/9.2.0;/usr/lib64;/lib64;/usr/lib;/lib")
 | 
			
		||||
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
 | 
			
		||||
							
								
								
									
										79
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CMakeCXXCompiler.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CMakeCXXCompiler.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,79 @@
 | 
			
		||||
set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_ARG1 "")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_ID "Clang")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_VERSION "9.0.0")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_WRAPPER "")
 | 
			
		||||
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
 | 
			
		||||
set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20")
 | 
			
		||||
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
 | 
			
		||||
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
 | 
			
		||||
set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
 | 
			
		||||
set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
 | 
			
		||||
set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CXX_PLATFORM_ID "Linux")
 | 
			
		||||
set(CMAKE_CXX_SIMULATE_ID "")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
 | 
			
		||||
set(CMAKE_CXX_SIMULATE_VERSION "")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set(CMAKE_AR "/usr/bin/ar")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_AR "/usr/bin/llvm-ar")
 | 
			
		||||
set(CMAKE_RANLIB "/usr/bin/ranlib")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/llvm-ranlib")
 | 
			
		||||
set(CMAKE_LINKER "/usr/bin/ld")
 | 
			
		||||
set(CMAKE_MT "")
 | 
			
		||||
set(CMAKE_COMPILER_IS_GNUCXX )
 | 
			
		||||
set(CMAKE_CXX_COMPILER_LOADED 1)
 | 
			
		||||
set(CMAKE_CXX_COMPILER_WORKS TRUE)
 | 
			
		||||
set(CMAKE_CXX_ABI_COMPILED TRUE)
 | 
			
		||||
set(CMAKE_COMPILER_IS_MINGW )
 | 
			
		||||
set(CMAKE_COMPILER_IS_CYGWIN )
 | 
			
		||||
if(CMAKE_COMPILER_IS_CYGWIN)
 | 
			
		||||
  set(CYGWIN 1)
 | 
			
		||||
  set(UNIX 1)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
 | 
			
		||||
 | 
			
		||||
if(CMAKE_COMPILER_IS_MINGW)
 | 
			
		||||
  set(MINGW 1)
 | 
			
		||||
endif()
 | 
			
		||||
set(CMAKE_CXX_COMPILER_ID_RUN 1)
 | 
			
		||||
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
 | 
			
		||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
 | 
			
		||||
set(CMAKE_CXX_LINKER_PREFERENCE 30)
 | 
			
		||||
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
 | 
			
		||||
 | 
			
		||||
# Save compiler ABI information.
 | 
			
		||||
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_ABI "ELF")
 | 
			
		||||
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
 | 
			
		||||
 | 
			
		||||
if(CMAKE_CXX_SIZEOF_DATA_PTR)
 | 
			
		||||
  set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(CMAKE_CXX_COMPILER_ABI)
 | 
			
		||||
  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
 | 
			
		||||
  set(CMAKE_LIBRARY_ARCHITECTURE "")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
 | 
			
		||||
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
 | 
			
		||||
  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/9.2.0;/usr/include/c++/9.2.0/x86_64-pc-linux-gnu;/usr/include/c++/9.2.0/backward;/usr/local/include;/usr/lib/clang/9.0.0/include;/usr/include")
 | 
			
		||||
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
 | 
			
		||||
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib64/gcc/x86_64-pc-linux-gnu/9.2.0;/usr/lib64;/lib64;/usr/lib;/lib")
 | 
			
		||||
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CMakeDetermineCompilerABI_C.bin
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CMakeDetermineCompilerABI_C.bin
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CMakeDetermineCompilerABI_CXX.bin
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CMakeDetermineCompilerABI_CXX.bin
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										15
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CMakeSystem.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CMakeSystem.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
set(CMAKE_HOST_SYSTEM "Linux-5.3.12-1-MANJARO")
 | 
			
		||||
set(CMAKE_HOST_SYSTEM_NAME "Linux")
 | 
			
		||||
set(CMAKE_HOST_SYSTEM_VERSION "5.3.12-1-MANJARO")
 | 
			
		||||
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set(CMAKE_SYSTEM "Linux-5.3.12-1-MANJARO")
 | 
			
		||||
set(CMAKE_SYSTEM_NAME "Linux")
 | 
			
		||||
set(CMAKE_SYSTEM_VERSION "5.3.12-1-MANJARO")
 | 
			
		||||
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CROSSCOMPILING "FALSE")
 | 
			
		||||
 | 
			
		||||
set(CMAKE_SYSTEM_LOADED 1)
 | 
			
		||||
@@ -0,0 +1,665 @@
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
# error "A C++ compiler has been selected for C."
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__18CXX)
 | 
			
		||||
# define ID_VOID_MAIN
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(__CLASSIC_C__)
 | 
			
		||||
/* cv-qualifiers did not exist in K&R C */
 | 
			
		||||
# define const
 | 
			
		||||
# define volatile
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Version number components: V=Version, R=Revision, P=Patch
 | 
			
		||||
   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
 | 
			
		||||
 | 
			
		||||
#if defined(__INTEL_COMPILER) || defined(__ICC)
 | 
			
		||||
# define COMPILER_ID "Intel"
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
#  define SIMULATE_ID "MSVC"
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC__)
 | 
			
		||||
#  define SIMULATE_ID "GNU"
 | 
			
		||||
# endif
 | 
			
		||||
  /* __INTEL_COMPILER = VRP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
 | 
			
		||||
# if defined(__INTEL_COMPILER_UPDATE)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
 | 
			
		||||
# else
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__INTEL_COMPILER_BUILD_DATE)
 | 
			
		||||
  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
 | 
			
		||||
#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
   /* _MSC_VER = VVRR */
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
 | 
			
		||||
#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC__)
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
 | 
			
		||||
# elif defined(__GNUG__)
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC_MINOR__)
 | 
			
		||||
#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC_PATCHLEVEL__)
 | 
			
		||||
#  define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__PATHCC__)
 | 
			
		||||
# define COMPILER_ID "PathScale"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
 | 
			
		||||
# if defined(__PATHCC_PATCHLEVEL__)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
 | 
			
		||||
# define COMPILER_ID "Embarcadero"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
 | 
			
		||||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
 | 
			
		||||
 | 
			
		||||
#elif defined(__BORLANDC__)
 | 
			
		||||
# define COMPILER_ID "Borland"
 | 
			
		||||
  /* __BORLANDC__ = 0xVRR */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
 | 
			
		||||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
 | 
			
		||||
 | 
			
		||||
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
 | 
			
		||||
# define COMPILER_ID "Watcom"
 | 
			
		||||
   /* __WATCOMC__ = VVRR */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
 | 
			
		||||
# if (__WATCOMC__ % 10) > 0
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__WATCOMC__)
 | 
			
		||||
# define COMPILER_ID "OpenWatcom"
 | 
			
		||||
   /* __WATCOMC__ = VVRP + 1100 */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
 | 
			
		||||
# if (__WATCOMC__ % 10) > 0
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__SUNPRO_C)
 | 
			
		||||
# define COMPILER_ID "SunPro"
 | 
			
		||||
# if __SUNPRO_C >= 0x5100
 | 
			
		||||
   /* __SUNPRO_C = 0xVRRP */
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
 | 
			
		||||
# else
 | 
			
		||||
   /* __SUNPRO_CC = 0xVRP */
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__HP_cc)
 | 
			
		||||
# define COMPILER_ID "HP"
 | 
			
		||||
  /* __HP_cc = VVRRPP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)
 | 
			
		||||
 | 
			
		||||
#elif defined(__DECC)
 | 
			
		||||
# define COMPILER_ID "Compaq"
 | 
			
		||||
  /* __DECC_VER = VVRRTPPPP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMC__) && defined(__COMPILER_VER__)
 | 
			
		||||
# define COMPILER_ID "zOS"
 | 
			
		||||
  /* __IBMC__ = VRP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
 | 
			
		||||
 | 
			
		||||
#elif defined(__ibmxl__) && defined(__clang__)
 | 
			
		||||
# define COMPILER_ID "XLClang"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
 | 
			
		||||
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
 | 
			
		||||
# define COMPILER_ID "XL"
 | 
			
		||||
  /* __IBMC__ = VRP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
 | 
			
		||||
# define COMPILER_ID "VisualAge"
 | 
			
		||||
  /* __IBMC__ = VRP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
 | 
			
		||||
 | 
			
		||||
#elif defined(__PGI)
 | 
			
		||||
# define COMPILER_ID "PGI"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
 | 
			
		||||
# if defined(__PGIC_PATCHLEVEL__)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(_CRAYC)
 | 
			
		||||
# define COMPILER_ID "Cray"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
 | 
			
		||||
 | 
			
		||||
#elif defined(__TI_COMPILER_VERSION__)
 | 
			
		||||
# define COMPILER_ID "TI"
 | 
			
		||||
  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
 | 
			
		||||
 | 
			
		||||
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
 | 
			
		||||
# define COMPILER_ID "Fujitsu"
 | 
			
		||||
 | 
			
		||||
#elif defined(__ghs__)
 | 
			
		||||
# define COMPILER_ID "GHS"
 | 
			
		||||
/* __GHS_VERSION_NUMBER = VVVVRP */
 | 
			
		||||
# ifdef __GHS_VERSION_NUMBER
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER      % 10)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__TINYC__)
 | 
			
		||||
# define COMPILER_ID "TinyCC"
 | 
			
		||||
 | 
			
		||||
#elif defined(__BCC__)
 | 
			
		||||
# define COMPILER_ID "Bruce"
 | 
			
		||||
 | 
			
		||||
#elif defined(__SCO_VERSION__)
 | 
			
		||||
# define COMPILER_ID "SCO"
 | 
			
		||||
 | 
			
		||||
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
 | 
			
		||||
# define COMPILER_ID "ARMCC"
 | 
			
		||||
#if __ARMCC_VERSION >= 1000000
 | 
			
		||||
  /* __ARMCC_VERSION = VRRPPPP */
 | 
			
		||||
  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
 | 
			
		||||
  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
 | 
			
		||||
  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
 | 
			
		||||
#else
 | 
			
		||||
  /* __ARMCC_VERSION = VRPPPP */
 | 
			
		||||
  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
 | 
			
		||||
  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
 | 
			
		||||
  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#elif defined(__clang__) && defined(__apple_build_version__)
 | 
			
		||||
# define COMPILER_ID "AppleClang"
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
#  define SIMULATE_ID "MSVC"
 | 
			
		||||
# endif
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
   /* _MSC_VER = VVRR */
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
 | 
			
		||||
#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
 | 
			
		||||
# endif
 | 
			
		||||
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
 | 
			
		||||
 | 
			
		||||
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
 | 
			
		||||
# define COMPILER_ID "ARMClang"
 | 
			
		||||
  # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
 | 
			
		||||
  # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
 | 
			
		||||
  # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION     % 10000)
 | 
			
		||||
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
 | 
			
		||||
 | 
			
		||||
#elif defined(__clang__)
 | 
			
		||||
# define COMPILER_ID "Clang"
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
#  define SIMULATE_ID "MSVC"
 | 
			
		||||
# endif
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
   /* _MSC_VER = VVRR */
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
 | 
			
		||||
#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__GNUC__)
 | 
			
		||||
# define COMPILER_ID "GNU"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
 | 
			
		||||
# if defined(__GNUC_MINOR__)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC_PATCHLEVEL__)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(_MSC_VER)
 | 
			
		||||
# define COMPILER_ID "MSVC"
 | 
			
		||||
  /* _MSC_VER = VVRR */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
 | 
			
		||||
# if defined(_MSC_FULL_VER)
 | 
			
		||||
#  if _MSC_VER >= 1400
 | 
			
		||||
    /* _MSC_FULL_VER = VVRRPPPPP */
 | 
			
		||||
#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
 | 
			
		||||
#  else
 | 
			
		||||
    /* _MSC_FULL_VER = VVRRPPPP */
 | 
			
		||||
#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
 | 
			
		||||
#  endif
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(_MSC_BUILD)
 | 
			
		||||
#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
 | 
			
		||||
# define COMPILER_ID "ADSP"
 | 
			
		||||
#if defined(__VISUALDSPVERSION__)
 | 
			
		||||
  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
 | 
			
		||||
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
 | 
			
		||||
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
 | 
			
		||||
# define COMPILER_ID "IAR"
 | 
			
		||||
# if defined(__VER__) && defined(__ICCARM__)
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
 | 
			
		||||
#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
 | 
			
		||||
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__))
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
 | 
			
		||||
#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
 | 
			
		||||
# define COMPILER_ID "SDCC"
 | 
			
		||||
# if defined(__SDCC_VERSION_MAJOR)
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
 | 
			
		||||
# else
 | 
			
		||||
  /* SDCC = VRP */
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* These compilers are either not known or too old to define an
 | 
			
		||||
  identification macro.  Try to identify the platform and guess that
 | 
			
		||||
  it is the native compiler.  */
 | 
			
		||||
#elif defined(__hpux) || defined(__hpua)
 | 
			
		||||
# define COMPILER_ID "HP"
 | 
			
		||||
 | 
			
		||||
#else /* unknown compiler */
 | 
			
		||||
# define COMPILER_ID ""
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Construct the string literal in pieces to prevent the source from
 | 
			
		||||
   getting matched.  Store it in a pointer rather than an array
 | 
			
		||||
   because some compilers will just produce instructions to fill the
 | 
			
		||||
   array rather than assigning a pointer to a static array.  */
 | 
			
		||||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
 | 
			
		||||
#ifdef SIMULATE_ID
 | 
			
		||||
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __QNXNTO__
 | 
			
		||||
char const* qnxnto = "INFO" ":" "qnxnto[]";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__CRAYXE) || defined(__CRAYXC)
 | 
			
		||||
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define STRINGIFY_HELPER(X) #X
 | 
			
		||||
#define STRINGIFY(X) STRINGIFY_HELPER(X)
 | 
			
		||||
 | 
			
		||||
/* Identify known platforms by name.  */
 | 
			
		||||
#if defined(__linux) || defined(__linux__) || defined(linux)
 | 
			
		||||
# define PLATFORM_ID "Linux"
 | 
			
		||||
 | 
			
		||||
#elif defined(__CYGWIN__)
 | 
			
		||||
# define PLATFORM_ID "Cygwin"
 | 
			
		||||
 | 
			
		||||
#elif defined(__MINGW32__)
 | 
			
		||||
# define PLATFORM_ID "MinGW"
 | 
			
		||||
 | 
			
		||||
#elif defined(__APPLE__)
 | 
			
		||||
# define PLATFORM_ID "Darwin"
 | 
			
		||||
 | 
			
		||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
 | 
			
		||||
# define PLATFORM_ID "Windows"
 | 
			
		||||
 | 
			
		||||
#elif defined(__FreeBSD__) || defined(__FreeBSD)
 | 
			
		||||
# define PLATFORM_ID "FreeBSD"
 | 
			
		||||
 | 
			
		||||
#elif defined(__NetBSD__) || defined(__NetBSD)
 | 
			
		||||
# define PLATFORM_ID "NetBSD"
 | 
			
		||||
 | 
			
		||||
#elif defined(__OpenBSD__) || defined(__OPENBSD)
 | 
			
		||||
# define PLATFORM_ID "OpenBSD"
 | 
			
		||||
 | 
			
		||||
#elif defined(__sun) || defined(sun)
 | 
			
		||||
# define PLATFORM_ID "SunOS"
 | 
			
		||||
 | 
			
		||||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
 | 
			
		||||
# define PLATFORM_ID "AIX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__hpux) || defined(__hpux__)
 | 
			
		||||
# define PLATFORM_ID "HP-UX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__HAIKU__)
 | 
			
		||||
# define PLATFORM_ID "Haiku"
 | 
			
		||||
 | 
			
		||||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
 | 
			
		||||
# define PLATFORM_ID "BeOS"
 | 
			
		||||
 | 
			
		||||
#elif defined(__QNX__) || defined(__QNXNTO__)
 | 
			
		||||
# define PLATFORM_ID "QNX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
 | 
			
		||||
# define PLATFORM_ID "Tru64"
 | 
			
		||||
 | 
			
		||||
#elif defined(__riscos) || defined(__riscos__)
 | 
			
		||||
# define PLATFORM_ID "RISCos"
 | 
			
		||||
 | 
			
		||||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
 | 
			
		||||
# define PLATFORM_ID "SINIX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__UNIX_SV__)
 | 
			
		||||
# define PLATFORM_ID "UNIX_SV"
 | 
			
		||||
 | 
			
		||||
#elif defined(__bsdos__)
 | 
			
		||||
# define PLATFORM_ID "BSDOS"
 | 
			
		||||
 | 
			
		||||
#elif defined(_MPRAS) || defined(MPRAS)
 | 
			
		||||
# define PLATFORM_ID "MP-RAS"
 | 
			
		||||
 | 
			
		||||
#elif defined(__osf) || defined(__osf__)
 | 
			
		||||
# define PLATFORM_ID "OSF1"
 | 
			
		||||
 | 
			
		||||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
 | 
			
		||||
# define PLATFORM_ID "SCO_SV"
 | 
			
		||||
 | 
			
		||||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
 | 
			
		||||
# define PLATFORM_ID "ULTRIX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
 | 
			
		||||
# define PLATFORM_ID "Xenix"
 | 
			
		||||
 | 
			
		||||
#elif defined(__WATCOMC__)
 | 
			
		||||
# if defined(__LINUX__)
 | 
			
		||||
#  define PLATFORM_ID "Linux"
 | 
			
		||||
 | 
			
		||||
# elif defined(__DOS__)
 | 
			
		||||
#  define PLATFORM_ID "DOS"
 | 
			
		||||
 | 
			
		||||
# elif defined(__OS2__)
 | 
			
		||||
#  define PLATFORM_ID "OS2"
 | 
			
		||||
 | 
			
		||||
# elif defined(__WINDOWS__)
 | 
			
		||||
#  define PLATFORM_ID "Windows3x"
 | 
			
		||||
 | 
			
		||||
# else /* unknown platform */
 | 
			
		||||
#  define PLATFORM_ID
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__INTEGRITY)
 | 
			
		||||
# if defined(INT_178B)
 | 
			
		||||
#  define PLATFORM_ID "Integrity178"
 | 
			
		||||
 | 
			
		||||
# else /* regular Integrity */
 | 
			
		||||
#  define PLATFORM_ID "Integrity"
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#else /* unknown platform */
 | 
			
		||||
# define PLATFORM_ID
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* For windows compilers MSVC and Intel we can determine
 | 
			
		||||
   the architecture of the compiler being used.  This is because
 | 
			
		||||
   the compilers do not have flags that can change the architecture,
 | 
			
		||||
   but rather depend on which compiler is being used
 | 
			
		||||
*/
 | 
			
		||||
#if defined(_WIN32) && defined(_MSC_VER)
 | 
			
		||||
# if defined(_M_IA64)
 | 
			
		||||
#  define ARCHITECTURE_ID "IA64"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_X64) || defined(_M_AMD64)
 | 
			
		||||
#  define ARCHITECTURE_ID "x64"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_IX86)
 | 
			
		||||
#  define ARCHITECTURE_ID "X86"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_ARM64)
 | 
			
		||||
#  define ARCHITECTURE_ID "ARM64"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_ARM)
 | 
			
		||||
#  if _M_ARM == 4
 | 
			
		||||
#   define ARCHITECTURE_ID "ARMV4I"
 | 
			
		||||
#  elif _M_ARM == 5
 | 
			
		||||
#   define ARCHITECTURE_ID "ARMV5I"
 | 
			
		||||
#  else
 | 
			
		||||
#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_MIPS)
 | 
			
		||||
#  define ARCHITECTURE_ID "MIPS"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_SH)
 | 
			
		||||
#  define ARCHITECTURE_ID "SHx"
 | 
			
		||||
 | 
			
		||||
# else /* unknown architecture */
 | 
			
		||||
#  define ARCHITECTURE_ID ""
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__WATCOMC__)
 | 
			
		||||
# if defined(_M_I86)
 | 
			
		||||
#  define ARCHITECTURE_ID "I86"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_IX86)
 | 
			
		||||
#  define ARCHITECTURE_ID "X86"
 | 
			
		||||
 | 
			
		||||
# else /* unknown architecture */
 | 
			
		||||
#  define ARCHITECTURE_ID ""
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
 | 
			
		||||
# if defined(__ICCARM__)
 | 
			
		||||
#  define ARCHITECTURE_ID "ARM"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCRX__)
 | 
			
		||||
#  define ARCHITECTURE_ID "RX"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCRH850__)
 | 
			
		||||
#  define ARCHITECTURE_ID "RH850"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCRL78__)
 | 
			
		||||
#  define ARCHITECTURE_ID "RL78"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCRISCV__)
 | 
			
		||||
#  define ARCHITECTURE_ID "RISCV"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCAVR__)
 | 
			
		||||
#  define ARCHITECTURE_ID "AVR"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICC430__)
 | 
			
		||||
#  define ARCHITECTURE_ID "MSP430"
 | 
			
		||||
 | 
			
		||||
# else /* unknown architecture */
 | 
			
		||||
#  define ARCHITECTURE_ID ""
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__ghs__)
 | 
			
		||||
# if defined(__PPC64__)
 | 
			
		||||
#  define ARCHITECTURE_ID "PPC64"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ppc__)
 | 
			
		||||
#  define ARCHITECTURE_ID "PPC"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ARM__)
 | 
			
		||||
#  define ARCHITECTURE_ID "ARM"
 | 
			
		||||
 | 
			
		||||
# elif defined(__x86_64__)
 | 
			
		||||
#  define ARCHITECTURE_ID "x64"
 | 
			
		||||
 | 
			
		||||
# elif defined(__i386__)
 | 
			
		||||
#  define ARCHITECTURE_ID "X86"
 | 
			
		||||
 | 
			
		||||
# else /* unknown architecture */
 | 
			
		||||
#  define ARCHITECTURE_ID ""
 | 
			
		||||
# endif
 | 
			
		||||
#else
 | 
			
		||||
#  define ARCHITECTURE_ID
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Convert integer to decimal digit literals.  */
 | 
			
		||||
#define DEC(n)                   \
 | 
			
		||||
  ('0' + (((n) / 10000000)%10)), \
 | 
			
		||||
  ('0' + (((n) / 1000000)%10)),  \
 | 
			
		||||
  ('0' + (((n) / 100000)%10)),   \
 | 
			
		||||
  ('0' + (((n) / 10000)%10)),    \
 | 
			
		||||
  ('0' + (((n) / 1000)%10)),     \
 | 
			
		||||
  ('0' + (((n) / 100)%10)),      \
 | 
			
		||||
  ('0' + (((n) / 10)%10)),       \
 | 
			
		||||
  ('0' +  ((n) % 10))
 | 
			
		||||
 | 
			
		||||
/* Convert integer to hex digit literals.  */
 | 
			
		||||
#define HEX(n)             \
 | 
			
		||||
  ('0' + ((n)>>28 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>24 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>20 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>16 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>12 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>8  & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>4  & 0xF)), \
 | 
			
		||||
  ('0' + ((n)     & 0xF))
 | 
			
		||||
 | 
			
		||||
/* Construct a string literal encoding the version number components. */
 | 
			
		||||
#ifdef COMPILER_VERSION_MAJOR
 | 
			
		||||
char const info_version[] = {
 | 
			
		||||
  'I', 'N', 'F', 'O', ':',
 | 
			
		||||
  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
 | 
			
		||||
  COMPILER_VERSION_MAJOR,
 | 
			
		||||
# ifdef COMPILER_VERSION_MINOR
 | 
			
		||||
  '.', COMPILER_VERSION_MINOR,
 | 
			
		||||
#  ifdef COMPILER_VERSION_PATCH
 | 
			
		||||
   '.', COMPILER_VERSION_PATCH,
 | 
			
		||||
#   ifdef COMPILER_VERSION_TWEAK
 | 
			
		||||
    '.', COMPILER_VERSION_TWEAK,
 | 
			
		||||
#   endif
 | 
			
		||||
#  endif
 | 
			
		||||
# endif
 | 
			
		||||
  ']','\0'};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Construct a string literal encoding the internal version number. */
 | 
			
		||||
#ifdef COMPILER_VERSION_INTERNAL
 | 
			
		||||
char const info_version_internal[] = {
 | 
			
		||||
  'I', 'N', 'F', 'O', ':',
 | 
			
		||||
  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
 | 
			
		||||
  'i','n','t','e','r','n','a','l','[',
 | 
			
		||||
  COMPILER_VERSION_INTERNAL,']','\0'};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Construct a string literal encoding the version number components. */
 | 
			
		||||
#ifdef SIMULATE_VERSION_MAJOR
 | 
			
		||||
char const info_simulate_version[] = {
 | 
			
		||||
  'I', 'N', 'F', 'O', ':',
 | 
			
		||||
  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
 | 
			
		||||
  SIMULATE_VERSION_MAJOR,
 | 
			
		||||
# ifdef SIMULATE_VERSION_MINOR
 | 
			
		||||
  '.', SIMULATE_VERSION_MINOR,
 | 
			
		||||
#  ifdef SIMULATE_VERSION_PATCH
 | 
			
		||||
   '.', SIMULATE_VERSION_PATCH,
 | 
			
		||||
#   ifdef SIMULATE_VERSION_TWEAK
 | 
			
		||||
    '.', SIMULATE_VERSION_TWEAK,
 | 
			
		||||
#   endif
 | 
			
		||||
#  endif
 | 
			
		||||
# endif
 | 
			
		||||
  ']','\0'};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Construct the string literal in pieces to prevent the source from
 | 
			
		||||
   getting matched.  Store it in a pointer rather than an array
 | 
			
		||||
   because some compilers will just produce instructions to fill the
 | 
			
		||||
   array rather than assigning a pointer to a static array.  */
 | 
			
		||||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
 | 
			
		||||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if !defined(__STDC__)
 | 
			
		||||
# if (defined(_MSC_VER) && !defined(__clang__)) \
 | 
			
		||||
  || (defined(__ibmxl__) || defined(__IBMC__))
 | 
			
		||||
#  define C_DIALECT "90"
 | 
			
		||||
# else
 | 
			
		||||
#  define C_DIALECT
 | 
			
		||||
# endif
 | 
			
		||||
#elif __STDC_VERSION__ >= 201000L
 | 
			
		||||
# define C_DIALECT "11"
 | 
			
		||||
#elif __STDC_VERSION__ >= 199901L
 | 
			
		||||
# define C_DIALECT "99"
 | 
			
		||||
#else
 | 
			
		||||
# define C_DIALECT "90"
 | 
			
		||||
#endif
 | 
			
		||||
const char* info_language_dialect_default =
 | 
			
		||||
  "INFO" ":" "dialect_default[" C_DIALECT "]";
 | 
			
		||||
 | 
			
		||||
/*--------------------------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
#ifdef ID_VOID_MAIN
 | 
			
		||||
void main() {}
 | 
			
		||||
#else
 | 
			
		||||
# if defined(__CLASSIC_C__)
 | 
			
		||||
int main(argc, argv) int argc; char *argv[];
 | 
			
		||||
# else
 | 
			
		||||
int main(int argc, char* argv[])
 | 
			
		||||
# endif
 | 
			
		||||
{
 | 
			
		||||
  int require = 0;
 | 
			
		||||
  require += info_compiler[argc];
 | 
			
		||||
  require += info_platform[argc];
 | 
			
		||||
  require += info_arch[argc];
 | 
			
		||||
#ifdef COMPILER_VERSION_MAJOR
 | 
			
		||||
  require += info_version[argc];
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef COMPILER_VERSION_INTERNAL
 | 
			
		||||
  require += info_version_internal[argc];
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef SIMULATE_ID
 | 
			
		||||
  require += info_simulate[argc];
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef SIMULATE_VERSION_MAJOR
 | 
			
		||||
  require += info_simulate_version[argc];
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(__CRAYXE) || defined(__CRAYXC)
 | 
			
		||||
  require += info_cray[argc];
 | 
			
		||||
#endif
 | 
			
		||||
  require += info_language_dialect_default[argc];
 | 
			
		||||
  (void)argv;
 | 
			
		||||
  return require;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CompilerIdC/a.out
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CompilerIdC/a.out
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -0,0 +1,644 @@
 | 
			
		||||
/* This source file must have a .cpp extension so that all C++ compilers
 | 
			
		||||
   recognize the extension without flags.  Borland does not know .cxx for
 | 
			
		||||
   example.  */
 | 
			
		||||
#ifndef __cplusplus
 | 
			
		||||
# error "A C compiler has been selected for C++."
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Version number components: V=Version, R=Revision, P=Patch
 | 
			
		||||
   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
 | 
			
		||||
 | 
			
		||||
#if defined(__COMO__)
 | 
			
		||||
# define COMPILER_ID "Comeau"
 | 
			
		||||
  /* __COMO_VERSION__ = VRR */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
 | 
			
		||||
 | 
			
		||||
#elif defined(__INTEL_COMPILER) || defined(__ICC)
 | 
			
		||||
# define COMPILER_ID "Intel"
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
#  define SIMULATE_ID "MSVC"
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC__)
 | 
			
		||||
#  define SIMULATE_ID "GNU"
 | 
			
		||||
# endif
 | 
			
		||||
  /* __INTEL_COMPILER = VRP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
 | 
			
		||||
# if defined(__INTEL_COMPILER_UPDATE)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
 | 
			
		||||
# else
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__INTEL_COMPILER_BUILD_DATE)
 | 
			
		||||
  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
 | 
			
		||||
#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
   /* _MSC_VER = VVRR */
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
 | 
			
		||||
#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC__)
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
 | 
			
		||||
# elif defined(__GNUG__)
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC_MINOR__)
 | 
			
		||||
#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC_PATCHLEVEL__)
 | 
			
		||||
#  define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__PATHCC__)
 | 
			
		||||
# define COMPILER_ID "PathScale"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
 | 
			
		||||
# if defined(__PATHCC_PATCHLEVEL__)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
 | 
			
		||||
# define COMPILER_ID "Embarcadero"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
 | 
			
		||||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
 | 
			
		||||
 | 
			
		||||
#elif defined(__BORLANDC__)
 | 
			
		||||
# define COMPILER_ID "Borland"
 | 
			
		||||
  /* __BORLANDC__ = 0xVRR */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
 | 
			
		||||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
 | 
			
		||||
 | 
			
		||||
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
 | 
			
		||||
# define COMPILER_ID "Watcom"
 | 
			
		||||
   /* __WATCOMC__ = VVRR */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
 | 
			
		||||
# if (__WATCOMC__ % 10) > 0
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__WATCOMC__)
 | 
			
		||||
# define COMPILER_ID "OpenWatcom"
 | 
			
		||||
   /* __WATCOMC__ = VVRP + 1100 */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
 | 
			
		||||
# if (__WATCOMC__ % 10) > 0
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__SUNPRO_CC)
 | 
			
		||||
# define COMPILER_ID "SunPro"
 | 
			
		||||
# if __SUNPRO_CC >= 0x5100
 | 
			
		||||
   /* __SUNPRO_CC = 0xVRRP */
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
 | 
			
		||||
# else
 | 
			
		||||
   /* __SUNPRO_CC = 0xVRP */
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__HP_aCC)
 | 
			
		||||
# define COMPILER_ID "HP"
 | 
			
		||||
  /* __HP_aCC = VVRRPP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
 | 
			
		||||
 | 
			
		||||
#elif defined(__DECCXX)
 | 
			
		||||
# define COMPILER_ID "Compaq"
 | 
			
		||||
  /* __DECCXX_VER = VVRRTPPPP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
 | 
			
		||||
# define COMPILER_ID "zOS"
 | 
			
		||||
  /* __IBMCPP__ = VRP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
 | 
			
		||||
 | 
			
		||||
#elif defined(__ibmxl__) && defined(__clang__)
 | 
			
		||||
# define COMPILER_ID "XLClang"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
 | 
			
		||||
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
 | 
			
		||||
# define COMPILER_ID "XL"
 | 
			
		||||
  /* __IBMCPP__ = VRP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
 | 
			
		||||
# define COMPILER_ID "VisualAge"
 | 
			
		||||
  /* __IBMCPP__ = VRP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
 | 
			
		||||
 | 
			
		||||
#elif defined(__PGI)
 | 
			
		||||
# define COMPILER_ID "PGI"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
 | 
			
		||||
# if defined(__PGIC_PATCHLEVEL__)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(_CRAYC)
 | 
			
		||||
# define COMPILER_ID "Cray"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
 | 
			
		||||
 | 
			
		||||
#elif defined(__TI_COMPILER_VERSION__)
 | 
			
		||||
# define COMPILER_ID "TI"
 | 
			
		||||
  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
 | 
			
		||||
 | 
			
		||||
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
 | 
			
		||||
# define COMPILER_ID "Fujitsu"
 | 
			
		||||
 | 
			
		||||
#elif defined(__ghs__)
 | 
			
		||||
# define COMPILER_ID "GHS"
 | 
			
		||||
/* __GHS_VERSION_NUMBER = VVVVRP */
 | 
			
		||||
# ifdef __GHS_VERSION_NUMBER
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER      % 10)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__SCO_VERSION__)
 | 
			
		||||
# define COMPILER_ID "SCO"
 | 
			
		||||
 | 
			
		||||
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
 | 
			
		||||
# define COMPILER_ID "ARMCC"
 | 
			
		||||
#if __ARMCC_VERSION >= 1000000
 | 
			
		||||
  /* __ARMCC_VERSION = VRRPPPP */
 | 
			
		||||
  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
 | 
			
		||||
  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
 | 
			
		||||
  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
 | 
			
		||||
#else
 | 
			
		||||
  /* __ARMCC_VERSION = VRPPPP */
 | 
			
		||||
  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
 | 
			
		||||
  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
 | 
			
		||||
  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#elif defined(__clang__) && defined(__apple_build_version__)
 | 
			
		||||
# define COMPILER_ID "AppleClang"
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
#  define SIMULATE_ID "MSVC"
 | 
			
		||||
# endif
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
   /* _MSC_VER = VVRR */
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
 | 
			
		||||
#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
 | 
			
		||||
# endif
 | 
			
		||||
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
 | 
			
		||||
 | 
			
		||||
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
 | 
			
		||||
# define COMPILER_ID "ARMClang"
 | 
			
		||||
  # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
 | 
			
		||||
  # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
 | 
			
		||||
  # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION     % 10000)
 | 
			
		||||
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
 | 
			
		||||
 | 
			
		||||
#elif defined(__clang__)
 | 
			
		||||
# define COMPILER_ID "Clang"
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
#  define SIMULATE_ID "MSVC"
 | 
			
		||||
# endif
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
   /* _MSC_VER = VVRR */
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
 | 
			
		||||
#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__GNUC__) || defined(__GNUG__)
 | 
			
		||||
# define COMPILER_ID "GNU"
 | 
			
		||||
# if defined(__GNUC__)
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR DEC(__GNUC__)
 | 
			
		||||
# else
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR DEC(__GNUG__)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC_MINOR__)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC_PATCHLEVEL__)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(_MSC_VER)
 | 
			
		||||
# define COMPILER_ID "MSVC"
 | 
			
		||||
  /* _MSC_VER = VVRR */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
 | 
			
		||||
# if defined(_MSC_FULL_VER)
 | 
			
		||||
#  if _MSC_VER >= 1400
 | 
			
		||||
    /* _MSC_FULL_VER = VVRRPPPPP */
 | 
			
		||||
#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
 | 
			
		||||
#  else
 | 
			
		||||
    /* _MSC_FULL_VER = VVRRPPPP */
 | 
			
		||||
#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
 | 
			
		||||
#  endif
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(_MSC_BUILD)
 | 
			
		||||
#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
 | 
			
		||||
# define COMPILER_ID "ADSP"
 | 
			
		||||
#if defined(__VISUALDSPVERSION__)
 | 
			
		||||
  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
 | 
			
		||||
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
 | 
			
		||||
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
 | 
			
		||||
# define COMPILER_ID "IAR"
 | 
			
		||||
# if defined(__VER__) && defined(__ICCARM__)
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
 | 
			
		||||
#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
 | 
			
		||||
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__))
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
 | 
			
		||||
#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* These compilers are either not known or too old to define an
 | 
			
		||||
  identification macro.  Try to identify the platform and guess that
 | 
			
		||||
  it is the native compiler.  */
 | 
			
		||||
#elif defined(__hpux) || defined(__hpua)
 | 
			
		||||
# define COMPILER_ID "HP"
 | 
			
		||||
 | 
			
		||||
#else /* unknown compiler */
 | 
			
		||||
# define COMPILER_ID ""
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Construct the string literal in pieces to prevent the source from
 | 
			
		||||
   getting matched.  Store it in a pointer rather than an array
 | 
			
		||||
   because some compilers will just produce instructions to fill the
 | 
			
		||||
   array rather than assigning a pointer to a static array.  */
 | 
			
		||||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
 | 
			
		||||
#ifdef SIMULATE_ID
 | 
			
		||||
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __QNXNTO__
 | 
			
		||||
char const* qnxnto = "INFO" ":" "qnxnto[]";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__CRAYXE) || defined(__CRAYXC)
 | 
			
		||||
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define STRINGIFY_HELPER(X) #X
 | 
			
		||||
#define STRINGIFY(X) STRINGIFY_HELPER(X)
 | 
			
		||||
 | 
			
		||||
/* Identify known platforms by name.  */
 | 
			
		||||
#if defined(__linux) || defined(__linux__) || defined(linux)
 | 
			
		||||
# define PLATFORM_ID "Linux"
 | 
			
		||||
 | 
			
		||||
#elif defined(__CYGWIN__)
 | 
			
		||||
# define PLATFORM_ID "Cygwin"
 | 
			
		||||
 | 
			
		||||
#elif defined(__MINGW32__)
 | 
			
		||||
# define PLATFORM_ID "MinGW"
 | 
			
		||||
 | 
			
		||||
#elif defined(__APPLE__)
 | 
			
		||||
# define PLATFORM_ID "Darwin"
 | 
			
		||||
 | 
			
		||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
 | 
			
		||||
# define PLATFORM_ID "Windows"
 | 
			
		||||
 | 
			
		||||
#elif defined(__FreeBSD__) || defined(__FreeBSD)
 | 
			
		||||
# define PLATFORM_ID "FreeBSD"
 | 
			
		||||
 | 
			
		||||
#elif defined(__NetBSD__) || defined(__NetBSD)
 | 
			
		||||
# define PLATFORM_ID "NetBSD"
 | 
			
		||||
 | 
			
		||||
#elif defined(__OpenBSD__) || defined(__OPENBSD)
 | 
			
		||||
# define PLATFORM_ID "OpenBSD"
 | 
			
		||||
 | 
			
		||||
#elif defined(__sun) || defined(sun)
 | 
			
		||||
# define PLATFORM_ID "SunOS"
 | 
			
		||||
 | 
			
		||||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
 | 
			
		||||
# define PLATFORM_ID "AIX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__hpux) || defined(__hpux__)
 | 
			
		||||
# define PLATFORM_ID "HP-UX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__HAIKU__)
 | 
			
		||||
# define PLATFORM_ID "Haiku"
 | 
			
		||||
 | 
			
		||||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
 | 
			
		||||
# define PLATFORM_ID "BeOS"
 | 
			
		||||
 | 
			
		||||
#elif defined(__QNX__) || defined(__QNXNTO__)
 | 
			
		||||
# define PLATFORM_ID "QNX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
 | 
			
		||||
# define PLATFORM_ID "Tru64"
 | 
			
		||||
 | 
			
		||||
#elif defined(__riscos) || defined(__riscos__)
 | 
			
		||||
# define PLATFORM_ID "RISCos"
 | 
			
		||||
 | 
			
		||||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
 | 
			
		||||
# define PLATFORM_ID "SINIX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__UNIX_SV__)
 | 
			
		||||
# define PLATFORM_ID "UNIX_SV"
 | 
			
		||||
 | 
			
		||||
#elif defined(__bsdos__)
 | 
			
		||||
# define PLATFORM_ID "BSDOS"
 | 
			
		||||
 | 
			
		||||
#elif defined(_MPRAS) || defined(MPRAS)
 | 
			
		||||
# define PLATFORM_ID "MP-RAS"
 | 
			
		||||
 | 
			
		||||
#elif defined(__osf) || defined(__osf__)
 | 
			
		||||
# define PLATFORM_ID "OSF1"
 | 
			
		||||
 | 
			
		||||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
 | 
			
		||||
# define PLATFORM_ID "SCO_SV"
 | 
			
		||||
 | 
			
		||||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
 | 
			
		||||
# define PLATFORM_ID "ULTRIX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
 | 
			
		||||
# define PLATFORM_ID "Xenix"
 | 
			
		||||
 | 
			
		||||
#elif defined(__WATCOMC__)
 | 
			
		||||
# if defined(__LINUX__)
 | 
			
		||||
#  define PLATFORM_ID "Linux"
 | 
			
		||||
 | 
			
		||||
# elif defined(__DOS__)
 | 
			
		||||
#  define PLATFORM_ID "DOS"
 | 
			
		||||
 | 
			
		||||
# elif defined(__OS2__)
 | 
			
		||||
#  define PLATFORM_ID "OS2"
 | 
			
		||||
 | 
			
		||||
# elif defined(__WINDOWS__)
 | 
			
		||||
#  define PLATFORM_ID "Windows3x"
 | 
			
		||||
 | 
			
		||||
# else /* unknown platform */
 | 
			
		||||
#  define PLATFORM_ID
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__INTEGRITY)
 | 
			
		||||
# if defined(INT_178B)
 | 
			
		||||
#  define PLATFORM_ID "Integrity178"
 | 
			
		||||
 | 
			
		||||
# else /* regular Integrity */
 | 
			
		||||
#  define PLATFORM_ID "Integrity"
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#else /* unknown platform */
 | 
			
		||||
# define PLATFORM_ID
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* For windows compilers MSVC and Intel we can determine
 | 
			
		||||
   the architecture of the compiler being used.  This is because
 | 
			
		||||
   the compilers do not have flags that can change the architecture,
 | 
			
		||||
   but rather depend on which compiler is being used
 | 
			
		||||
*/
 | 
			
		||||
#if defined(_WIN32) && defined(_MSC_VER)
 | 
			
		||||
# if defined(_M_IA64)
 | 
			
		||||
#  define ARCHITECTURE_ID "IA64"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_X64) || defined(_M_AMD64)
 | 
			
		||||
#  define ARCHITECTURE_ID "x64"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_IX86)
 | 
			
		||||
#  define ARCHITECTURE_ID "X86"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_ARM64)
 | 
			
		||||
#  define ARCHITECTURE_ID "ARM64"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_ARM)
 | 
			
		||||
#  if _M_ARM == 4
 | 
			
		||||
#   define ARCHITECTURE_ID "ARMV4I"
 | 
			
		||||
#  elif _M_ARM == 5
 | 
			
		||||
#   define ARCHITECTURE_ID "ARMV5I"
 | 
			
		||||
#  else
 | 
			
		||||
#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_MIPS)
 | 
			
		||||
#  define ARCHITECTURE_ID "MIPS"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_SH)
 | 
			
		||||
#  define ARCHITECTURE_ID "SHx"
 | 
			
		||||
 | 
			
		||||
# else /* unknown architecture */
 | 
			
		||||
#  define ARCHITECTURE_ID ""
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__WATCOMC__)
 | 
			
		||||
# if defined(_M_I86)
 | 
			
		||||
#  define ARCHITECTURE_ID "I86"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_IX86)
 | 
			
		||||
#  define ARCHITECTURE_ID "X86"
 | 
			
		||||
 | 
			
		||||
# else /* unknown architecture */
 | 
			
		||||
#  define ARCHITECTURE_ID ""
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
 | 
			
		||||
# if defined(__ICCARM__)
 | 
			
		||||
#  define ARCHITECTURE_ID "ARM"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCRX__)
 | 
			
		||||
#  define ARCHITECTURE_ID "RX"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCRH850__)
 | 
			
		||||
#  define ARCHITECTURE_ID "RH850"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCRL78__)
 | 
			
		||||
#  define ARCHITECTURE_ID "RL78"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCRISCV__)
 | 
			
		||||
#  define ARCHITECTURE_ID "RISCV"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCAVR__)
 | 
			
		||||
#  define ARCHITECTURE_ID "AVR"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICC430__)
 | 
			
		||||
#  define ARCHITECTURE_ID "MSP430"
 | 
			
		||||
 | 
			
		||||
# else /* unknown architecture */
 | 
			
		||||
#  define ARCHITECTURE_ID ""
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__ghs__)
 | 
			
		||||
# if defined(__PPC64__)
 | 
			
		||||
#  define ARCHITECTURE_ID "PPC64"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ppc__)
 | 
			
		||||
#  define ARCHITECTURE_ID "PPC"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ARM__)
 | 
			
		||||
#  define ARCHITECTURE_ID "ARM"
 | 
			
		||||
 | 
			
		||||
# elif defined(__x86_64__)
 | 
			
		||||
#  define ARCHITECTURE_ID "x64"
 | 
			
		||||
 | 
			
		||||
# elif defined(__i386__)
 | 
			
		||||
#  define ARCHITECTURE_ID "X86"
 | 
			
		||||
 | 
			
		||||
# else /* unknown architecture */
 | 
			
		||||
#  define ARCHITECTURE_ID ""
 | 
			
		||||
# endif
 | 
			
		||||
#else
 | 
			
		||||
#  define ARCHITECTURE_ID
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Convert integer to decimal digit literals.  */
 | 
			
		||||
#define DEC(n)                   \
 | 
			
		||||
  ('0' + (((n) / 10000000)%10)), \
 | 
			
		||||
  ('0' + (((n) / 1000000)%10)),  \
 | 
			
		||||
  ('0' + (((n) / 100000)%10)),   \
 | 
			
		||||
  ('0' + (((n) / 10000)%10)),    \
 | 
			
		||||
  ('0' + (((n) / 1000)%10)),     \
 | 
			
		||||
  ('0' + (((n) / 100)%10)),      \
 | 
			
		||||
  ('0' + (((n) / 10)%10)),       \
 | 
			
		||||
  ('0' +  ((n) % 10))
 | 
			
		||||
 | 
			
		||||
/* Convert integer to hex digit literals.  */
 | 
			
		||||
#define HEX(n)             \
 | 
			
		||||
  ('0' + ((n)>>28 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>24 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>20 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>16 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>12 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>8  & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>4  & 0xF)), \
 | 
			
		||||
  ('0' + ((n)     & 0xF))
 | 
			
		||||
 | 
			
		||||
/* Construct a string literal encoding the version number components. */
 | 
			
		||||
#ifdef COMPILER_VERSION_MAJOR
 | 
			
		||||
char const info_version[] = {
 | 
			
		||||
  'I', 'N', 'F', 'O', ':',
 | 
			
		||||
  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
 | 
			
		||||
  COMPILER_VERSION_MAJOR,
 | 
			
		||||
# ifdef COMPILER_VERSION_MINOR
 | 
			
		||||
  '.', COMPILER_VERSION_MINOR,
 | 
			
		||||
#  ifdef COMPILER_VERSION_PATCH
 | 
			
		||||
   '.', COMPILER_VERSION_PATCH,
 | 
			
		||||
#   ifdef COMPILER_VERSION_TWEAK
 | 
			
		||||
    '.', COMPILER_VERSION_TWEAK,
 | 
			
		||||
#   endif
 | 
			
		||||
#  endif
 | 
			
		||||
# endif
 | 
			
		||||
  ']','\0'};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Construct a string literal encoding the internal version number. */
 | 
			
		||||
#ifdef COMPILER_VERSION_INTERNAL
 | 
			
		||||
char const info_version_internal[] = {
 | 
			
		||||
  'I', 'N', 'F', 'O', ':',
 | 
			
		||||
  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
 | 
			
		||||
  'i','n','t','e','r','n','a','l','[',
 | 
			
		||||
  COMPILER_VERSION_INTERNAL,']','\0'};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Construct a string literal encoding the version number components. */
 | 
			
		||||
#ifdef SIMULATE_VERSION_MAJOR
 | 
			
		||||
char const info_simulate_version[] = {
 | 
			
		||||
  'I', 'N', 'F', 'O', ':',
 | 
			
		||||
  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
 | 
			
		||||
  SIMULATE_VERSION_MAJOR,
 | 
			
		||||
# ifdef SIMULATE_VERSION_MINOR
 | 
			
		||||
  '.', SIMULATE_VERSION_MINOR,
 | 
			
		||||
#  ifdef SIMULATE_VERSION_PATCH
 | 
			
		||||
   '.', SIMULATE_VERSION_PATCH,
 | 
			
		||||
#   ifdef SIMULATE_VERSION_TWEAK
 | 
			
		||||
    '.', SIMULATE_VERSION_TWEAK,
 | 
			
		||||
#   endif
 | 
			
		||||
#  endif
 | 
			
		||||
# endif
 | 
			
		||||
  ']','\0'};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Construct the string literal in pieces to prevent the source from
 | 
			
		||||
   getting matched.  Store it in a pointer rather than an array
 | 
			
		||||
   because some compilers will just produce instructions to fill the
 | 
			
		||||
   array rather than assigning a pointer to a static array.  */
 | 
			
		||||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
 | 
			
		||||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) && defined(_MSVC_LANG)
 | 
			
		||||
#define CXX_STD _MSVC_LANG
 | 
			
		||||
#else
 | 
			
		||||
#define CXX_STD __cplusplus
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
const char* info_language_dialect_default = "INFO" ":" "dialect_default["
 | 
			
		||||
#if CXX_STD > 201703L
 | 
			
		||||
  "20"
 | 
			
		||||
#elif CXX_STD >= 201703L
 | 
			
		||||
  "17"
 | 
			
		||||
#elif CXX_STD >= 201402L
 | 
			
		||||
  "14"
 | 
			
		||||
#elif CXX_STD >= 201103L
 | 
			
		||||
  "11"
 | 
			
		||||
#else
 | 
			
		||||
  "98"
 | 
			
		||||
#endif
 | 
			
		||||
"]";
 | 
			
		||||
 | 
			
		||||
/*--------------------------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
int main(int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  int require = 0;
 | 
			
		||||
  require += info_compiler[argc];
 | 
			
		||||
  require += info_platform[argc];
 | 
			
		||||
#ifdef COMPILER_VERSION_MAJOR
 | 
			
		||||
  require += info_version[argc];
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef COMPILER_VERSION_INTERNAL
 | 
			
		||||
  require += info_version_internal[argc];
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef SIMULATE_ID
 | 
			
		||||
  require += info_simulate[argc];
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef SIMULATE_VERSION_MAJOR
 | 
			
		||||
  require += info_simulate_version[argc];
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(__CRAYXE) || defined(__CRAYXC)
 | 
			
		||||
  require += info_cray[argc];
 | 
			
		||||
#endif
 | 
			
		||||
  require += info_language_dialect_default[argc];
 | 
			
		||||
  (void)argv;
 | 
			
		||||
  return require;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CompilerIdCXX/a.out
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								cmake-build-debug/CMakeFiles/3.15.5/CompilerIdCXX/a.out
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										16
									
								
								cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
# CMAKE generated file: DO NOT EDIT!
 | 
			
		||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
 | 
			
		||||
 | 
			
		||||
# Relative path conversion top directories.
 | 
			
		||||
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/massiveatoms/Desktop/studieproject/homebrew")
 | 
			
		||||
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug")
 | 
			
		||||
 | 
			
		||||
# Force unix paths in dependencies.
 | 
			
		||||
set(CMAKE_FORCE_UNIX_PATHS 1)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# The C and CXX include file regular expressions for this directory.
 | 
			
		||||
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
 | 
			
		||||
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
 | 
			
		||||
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
 | 
			
		||||
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
 | 
			
		||||
							
								
								
									
										126
									
								
								cmake-build-debug/CMakeFiles/Makefile.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								cmake-build-debug/CMakeFiles/Makefile.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,126 @@
 | 
			
		||||
# CMAKE generated file: DO NOT EDIT!
 | 
			
		||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
 | 
			
		||||
 | 
			
		||||
# The generator used is:
 | 
			
		||||
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
 | 
			
		||||
 | 
			
		||||
# The top level Makefile was generated from the following files:
 | 
			
		||||
set(CMAKE_MAKEFILE_DEPENDS
 | 
			
		||||
  "CMakeCache.txt"
 | 
			
		||||
  "../CMakeLists.txt"
 | 
			
		||||
  "CMakeFiles/3.15.5/CMakeCCompiler.cmake"
 | 
			
		||||
  "CMakeFiles/3.15.5/CMakeCXXCompiler.cmake"
 | 
			
		||||
  "CMakeFiles/3.15.5/CMakeSystem.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeCCompiler.cmake.in"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeCCompilerABI.c"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeCInformation.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeCXXCompiler.cmake.in"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeCXXCompilerABI.cpp"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeCXXInformation.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeCommonLanguageInclude.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeCompilerIdDetection.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeDetermineCCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeDetermineCXXCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeDetermineCompileFeatures.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeDetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeDetermineCompilerABI.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeDetermineCompilerId.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeDetermineSystem.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeFindBinUtils.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeFindCodeBlocks.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeGenericSystem.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeInitializeConfigs.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeLanguageInformation.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeParseImplicitIncludeInfo.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeParseImplicitLinkInfo.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeSystem.cmake.in"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeSystemSpecificInformation.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeSystemSpecificInitialize.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeTestCCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeTestCXXCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeTestCompilerCommon.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/CMakeUnixFindMake.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/ADSP-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Borland-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Clang-C.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Clang-CXX.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Clang-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Clang-FindBinUtils.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Clang.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Cray-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/GHS-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/GNU.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/HP-C-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/IAR-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Intel-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/MSVC-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/PGI-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/PathScale-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/SCO-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/TI-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/Watcom-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/XL-C-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Internal/CMakeCheckCompilerFlag.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Internal/FeatureTesting.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Platform/Linux-Clang-C.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Platform/Linux-Clang-CXX.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Platform/Linux-Determine-CXX.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Platform/Linux-GNU-C.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Platform/Linux-GNU-CXX.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Platform/Linux-GNU.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Platform/Linux.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/Platform/UnixPaths.cmake"
 | 
			
		||||
  "/usr/share/cmake-3.15/Modules/ProcessorCount.cmake"
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
# The corresponding makefile is:
 | 
			
		||||
set(CMAKE_MAKEFILE_OUTPUTS
 | 
			
		||||
  "Makefile"
 | 
			
		||||
  "CMakeFiles/cmake.check_cache"
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
# Byproducts of CMake generate step:
 | 
			
		||||
set(CMAKE_MAKEFILE_PRODUCTS
 | 
			
		||||
  "CMakeFiles/3.15.5/CMakeSystem.cmake"
 | 
			
		||||
  "CMakeFiles/3.15.5/CMakeCCompiler.cmake"
 | 
			
		||||
  "CMakeFiles/3.15.5/CMakeCXXCompiler.cmake"
 | 
			
		||||
  "CMakeFiles/3.15.5/CMakeCCompiler.cmake"
 | 
			
		||||
  "CMakeFiles/3.15.5/CMakeCXXCompiler.cmake"
 | 
			
		||||
  "CMakeFiles/CMakeDirectoryInformation.cmake"
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
# Dependency information for all targets:
 | 
			
		||||
set(CMAKE_DEPEND_INFO_FILES
 | 
			
		||||
  "CMakeFiles/another_studproject.dir/DependInfo.cmake"
 | 
			
		||||
  )
 | 
			
		||||
							
								
								
									
										111
									
								
								cmake-build-debug/CMakeFiles/Makefile2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								cmake-build-debug/CMakeFiles/Makefile2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,111 @@
 | 
			
		||||
# CMAKE generated file: DO NOT EDIT!
 | 
			
		||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
 | 
			
		||||
 | 
			
		||||
# Default target executed when no arguments are given to make.
 | 
			
		||||
default_target: all
 | 
			
		||||
 | 
			
		||||
.PHONY : default_target
 | 
			
		||||
 | 
			
		||||
# The main recursive all target
 | 
			
		||||
all:
 | 
			
		||||
 | 
			
		||||
.PHONY : all
 | 
			
		||||
 | 
			
		||||
# The main recursive preinstall target
 | 
			
		||||
preinstall:
 | 
			
		||||
 | 
			
		||||
.PHONY : preinstall
 | 
			
		||||
 | 
			
		||||
#=============================================================================
 | 
			
		||||
# Special targets provided by cmake.
 | 
			
		||||
 | 
			
		||||
# Disable implicit rules so canonical targets will work.
 | 
			
		||||
.SUFFIXES:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Remove some rules from gmake that .SUFFIXES does not remove.
 | 
			
		||||
SUFFIXES =
 | 
			
		||||
 | 
			
		||||
.SUFFIXES: .hpux_make_needs_suffix_list
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Suppress display of executed commands.
 | 
			
		||||
$(VERBOSE).SILENT:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# A target that is always out of date.
 | 
			
		||||
cmake_force:
 | 
			
		||||
 | 
			
		||||
.PHONY : cmake_force
 | 
			
		||||
 | 
			
		||||
#=============================================================================
 | 
			
		||||
# Set environment variables for the build.
 | 
			
		||||
 | 
			
		||||
# The shell in which to execute make rules.
 | 
			
		||||
SHELL = /bin/sh
 | 
			
		||||
 | 
			
		||||
# The CMake executable.
 | 
			
		||||
CMAKE_COMMAND = /usr/bin/cmake
 | 
			
		||||
 | 
			
		||||
# The command to remove a file.
 | 
			
		||||
RM = /usr/bin/cmake -E remove -f
 | 
			
		||||
 | 
			
		||||
# Escaping for special characters.
 | 
			
		||||
EQUALS = =
 | 
			
		||||
 | 
			
		||||
# The top-level source directory on which CMake was run.
 | 
			
		||||
CMAKE_SOURCE_DIR = /home/massiveatoms/Desktop/studieproject/homebrew
 | 
			
		||||
 | 
			
		||||
# The top-level build directory on which CMake was run.
 | 
			
		||||
CMAKE_BINARY_DIR = /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug
 | 
			
		||||
 | 
			
		||||
#=============================================================================
 | 
			
		||||
# Directory level rules for the build root directory
 | 
			
		||||
 | 
			
		||||
# The main recursive "clean" target.
 | 
			
		||||
clean: CMakeFiles/another_studproject.dir/clean
 | 
			
		||||
 | 
			
		||||
.PHONY : clean
 | 
			
		||||
 | 
			
		||||
#=============================================================================
 | 
			
		||||
# Target rules for target CMakeFiles/another_studproject.dir
 | 
			
		||||
 | 
			
		||||
# All Build rule for target.
 | 
			
		||||
CMakeFiles/another_studproject.dir/all:
 | 
			
		||||
	$(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/depend
 | 
			
		||||
	$(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/build
 | 
			
		||||
	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target another_studproject"
 | 
			
		||||
.PHONY : CMakeFiles/another_studproject.dir/all
 | 
			
		||||
 | 
			
		||||
# Include target in all.
 | 
			
		||||
all: CMakeFiles/another_studproject.dir/all
 | 
			
		||||
 | 
			
		||||
.PHONY : all
 | 
			
		||||
 | 
			
		||||
# Build rule for subdir invocation for target.
 | 
			
		||||
CMakeFiles/another_studproject.dir/rule: cmake_check_build_system
 | 
			
		||||
	$(CMAKE_COMMAND) -E cmake_progress_start /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles 2
 | 
			
		||||
	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/another_studproject.dir/all
 | 
			
		||||
	$(CMAKE_COMMAND) -E cmake_progress_start /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles 0
 | 
			
		||||
.PHONY : CMakeFiles/another_studproject.dir/rule
 | 
			
		||||
 | 
			
		||||
# Convenience name for target.
 | 
			
		||||
another_studproject: CMakeFiles/another_studproject.dir/rule
 | 
			
		||||
 | 
			
		||||
.PHONY : another_studproject
 | 
			
		||||
 | 
			
		||||
# clean rule for target.
 | 
			
		||||
CMakeFiles/another_studproject.dir/clean:
 | 
			
		||||
	$(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/clean
 | 
			
		||||
.PHONY : CMakeFiles/another_studproject.dir/clean
 | 
			
		||||
 | 
			
		||||
#=============================================================================
 | 
			
		||||
# Special targets to cleanup operation of make.
 | 
			
		||||
 | 
			
		||||
# Special rule to run CMake to check the build system integrity.
 | 
			
		||||
# No rule that depends on this can have commands that come from listfiles
 | 
			
		||||
# because they might be regenerated.
 | 
			
		||||
cmake_check_build_system:
 | 
			
		||||
	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
 | 
			
		||||
.PHONY : cmake_check_build_system
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								cmake-build-debug/CMakeFiles/TargetDirectories.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								cmake-build-debug/CMakeFiles/TargetDirectories.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles/rebuild_cache.dir
 | 
			
		||||
/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles/another_studproject.dir
 | 
			
		||||
/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles/edit_cache.dir
 | 
			
		||||
@@ -0,0 +1,28 @@
 | 
			
		||||
#IncludeRegexLine: ^[ 	]*[#%][ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
 | 
			
		||||
 | 
			
		||||
#IncludeRegexScan: ^.*$
 | 
			
		||||
 | 
			
		||||
#IncludeRegexComplain: ^$
 | 
			
		||||
 | 
			
		||||
#IncludeRegexTransform: 
 | 
			
		||||
 | 
			
		||||
/home/massiveatoms/Desktop/studieproject/homebrew/main.cpp
 | 
			
		||||
iostream
 | 
			
		||||
-
 | 
			
		||||
vector
 | 
			
		||||
-
 | 
			
		||||
unordered_map
 | 
			
		||||
-
 | 
			
		||||
algorithm
 | 
			
		||||
-
 | 
			
		||||
random
 | 
			
		||||
-
 | 
			
		||||
iterator
 | 
			
		||||
-
 | 
			
		||||
chrono
 | 
			
		||||
-
 | 
			
		||||
string
 | 
			
		||||
-
 | 
			
		||||
math.h
 | 
			
		||||
-
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,20 @@
 | 
			
		||||
# The set of languages for which implicit dependencies are needed:
 | 
			
		||||
set(CMAKE_DEPENDS_LANGUAGES
 | 
			
		||||
  "CXX"
 | 
			
		||||
  )
 | 
			
		||||
# The set of files for implicit dependencies of each language:
 | 
			
		||||
set(CMAKE_DEPENDS_CHECK_CXX
 | 
			
		||||
  "/home/massiveatoms/Desktop/studieproject/homebrew/main.cpp" "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles/another_studproject.dir/main.cpp.o"
 | 
			
		||||
  )
 | 
			
		||||
set(CMAKE_CXX_COMPILER_ID "Clang")
 | 
			
		||||
 | 
			
		||||
# The include file search paths:
 | 
			
		||||
set(CMAKE_CXX_TARGET_INCLUDE_PATH
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
# Targets to which this target links.
 | 
			
		||||
set(CMAKE_TARGET_LINKED_INFO_FILES
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
# Fortran module output directory.
 | 
			
		||||
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
 | 
			
		||||
@@ -0,0 +1,98 @@
 | 
			
		||||
# CMAKE generated file: DO NOT EDIT!
 | 
			
		||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
 | 
			
		||||
 | 
			
		||||
# Delete rule output on recipe failure.
 | 
			
		||||
.DELETE_ON_ERROR:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#=============================================================================
 | 
			
		||||
# Special targets provided by cmake.
 | 
			
		||||
 | 
			
		||||
# Disable implicit rules so canonical targets will work.
 | 
			
		||||
.SUFFIXES:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Remove some rules from gmake that .SUFFIXES does not remove.
 | 
			
		||||
SUFFIXES =
 | 
			
		||||
 | 
			
		||||
.SUFFIXES: .hpux_make_needs_suffix_list
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Suppress display of executed commands.
 | 
			
		||||
$(VERBOSE).SILENT:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# A target that is always out of date.
 | 
			
		||||
cmake_force:
 | 
			
		||||
 | 
			
		||||
.PHONY : cmake_force
 | 
			
		||||
 | 
			
		||||
#=============================================================================
 | 
			
		||||
# Set environment variables for the build.
 | 
			
		||||
 | 
			
		||||
# The shell in which to execute make rules.
 | 
			
		||||
SHELL = /bin/sh
 | 
			
		||||
 | 
			
		||||
# The CMake executable.
 | 
			
		||||
CMAKE_COMMAND = /usr/bin/cmake
 | 
			
		||||
 | 
			
		||||
# The command to remove a file.
 | 
			
		||||
RM = /usr/bin/cmake -E remove -f
 | 
			
		||||
 | 
			
		||||
# Escaping for special characters.
 | 
			
		||||
EQUALS = =
 | 
			
		||||
 | 
			
		||||
# The top-level source directory on which CMake was run.
 | 
			
		||||
CMAKE_SOURCE_DIR = /home/massiveatoms/Desktop/studieproject/homebrew
 | 
			
		||||
 | 
			
		||||
# The top-level build directory on which CMake was run.
 | 
			
		||||
CMAKE_BINARY_DIR = /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug
 | 
			
		||||
 | 
			
		||||
# Include any dependencies generated for this target.
 | 
			
		||||
include CMakeFiles/another_studproject.dir/depend.make
 | 
			
		||||
 | 
			
		||||
# Include the progress variables for this target.
 | 
			
		||||
include CMakeFiles/another_studproject.dir/progress.make
 | 
			
		||||
 | 
			
		||||
# Include the compile flags for this target's objects.
 | 
			
		||||
include CMakeFiles/another_studproject.dir/flags.make
 | 
			
		||||
 | 
			
		||||
CMakeFiles/another_studproject.dir/main.cpp.o: CMakeFiles/another_studproject.dir/flags.make
 | 
			
		||||
CMakeFiles/another_studproject.dir/main.cpp.o: ../main.cpp
 | 
			
		||||
	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/another_studproject.dir/main.cpp.o"
 | 
			
		||||
	/usr/bin/clang++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/another_studproject.dir/main.cpp.o -c /home/massiveatoms/Desktop/studieproject/homebrew/main.cpp
 | 
			
		||||
 | 
			
		||||
CMakeFiles/another_studproject.dir/main.cpp.i: cmake_force
 | 
			
		||||
	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/another_studproject.dir/main.cpp.i"
 | 
			
		||||
	/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/massiveatoms/Desktop/studieproject/homebrew/main.cpp > CMakeFiles/another_studproject.dir/main.cpp.i
 | 
			
		||||
 | 
			
		||||
CMakeFiles/another_studproject.dir/main.cpp.s: cmake_force
 | 
			
		||||
	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/another_studproject.dir/main.cpp.s"
 | 
			
		||||
	/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/massiveatoms/Desktop/studieproject/homebrew/main.cpp -o CMakeFiles/another_studproject.dir/main.cpp.s
 | 
			
		||||
 | 
			
		||||
# Object files for target another_studproject
 | 
			
		||||
another_studproject_OBJECTS = \
 | 
			
		||||
"CMakeFiles/another_studproject.dir/main.cpp.o"
 | 
			
		||||
 | 
			
		||||
# External object files for target another_studproject
 | 
			
		||||
another_studproject_EXTERNAL_OBJECTS =
 | 
			
		||||
 | 
			
		||||
another_studproject: CMakeFiles/another_studproject.dir/main.cpp.o
 | 
			
		||||
another_studproject: CMakeFiles/another_studproject.dir/build.make
 | 
			
		||||
another_studproject: CMakeFiles/another_studproject.dir/link.txt
 | 
			
		||||
	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable another_studproject"
 | 
			
		||||
	$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/another_studproject.dir/link.txt --verbose=$(VERBOSE)
 | 
			
		||||
 | 
			
		||||
# Rule to build all files generated by this target.
 | 
			
		||||
CMakeFiles/another_studproject.dir/build: another_studproject
 | 
			
		||||
 | 
			
		||||
.PHONY : CMakeFiles/another_studproject.dir/build
 | 
			
		||||
 | 
			
		||||
CMakeFiles/another_studproject.dir/clean:
 | 
			
		||||
	$(CMAKE_COMMAND) -P CMakeFiles/another_studproject.dir/cmake_clean.cmake
 | 
			
		||||
.PHONY : CMakeFiles/another_studproject.dir/clean
 | 
			
		||||
 | 
			
		||||
CMakeFiles/another_studproject.dir/depend:
 | 
			
		||||
	cd /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/massiveatoms/Desktop/studieproject/homebrew /home/massiveatoms/Desktop/studieproject/homebrew /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles/another_studproject.dir/DependInfo.cmake --color=$(COLOR)
 | 
			
		||||
.PHONY : CMakeFiles/another_studproject.dir/depend
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,10 @@
 | 
			
		||||
file(REMOVE_RECURSE
 | 
			
		||||
  "CMakeFiles/another_studproject.dir/main.cpp.o"
 | 
			
		||||
  "another_studproject"
 | 
			
		||||
  "another_studproject.pdb"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# Per-language clean rules from dependency scanning.
 | 
			
		||||
foreach(lang CXX)
 | 
			
		||||
  include(CMakeFiles/another_studproject.dir/cmake_clean_${lang}.cmake OPTIONAL)
 | 
			
		||||
endforeach()
 | 
			
		||||
@@ -0,0 +1,5 @@
 | 
			
		||||
# CMAKE generated file: DO NOT EDIT!
 | 
			
		||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
 | 
			
		||||
 | 
			
		||||
CMakeFiles/another_studproject.dir/main.cpp.o
 | 
			
		||||
 /home/massiveatoms/Desktop/studieproject/homebrew/main.cpp
 | 
			
		||||
@@ -0,0 +1,5 @@
 | 
			
		||||
# CMAKE generated file: DO NOT EDIT!
 | 
			
		||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
 | 
			
		||||
 | 
			
		||||
CMakeFiles/another_studproject.dir/main.cpp.o: ../main.cpp
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,10 @@
 | 
			
		||||
# CMAKE generated file: DO NOT EDIT!
 | 
			
		||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
 | 
			
		||||
 | 
			
		||||
# compile CXX with /usr/bin/clang++
 | 
			
		||||
CXX_FLAGS = -g   -std=gnu++17
 | 
			
		||||
 | 
			
		||||
CXX_DEFINES = 
 | 
			
		||||
 | 
			
		||||
CXX_INCLUDES = 
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
/usr/bin/clang++  -g   CMakeFiles/another_studproject.dir/main.cpp.o  -o another_studproject 
 | 
			
		||||
@@ -0,0 +1,3 @@
 | 
			
		||||
CMAKE_PROGRESS_1 = 1
 | 
			
		||||
CMAKE_PROGRESS_2 = 2
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								cmake-build-debug/CMakeFiles/clion-environment.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								cmake-build-debug/CMakeFiles/clion-environment.txt
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										18
									
								
								cmake-build-debug/CMakeFiles/clion-log.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								cmake-build-debug/CMakeFiles/clion-log.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
/usr/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -G "CodeBlocks - Unix Makefiles" /home/massiveatoms/Desktop/studieproject/homebrew
 | 
			
		||||
-- The C compiler identification is Clang 9.0.0
 | 
			
		||||
-- The CXX compiler identification is Clang 9.0.0
 | 
			
		||||
-- Check for working C compiler: /usr/bin/clang
 | 
			
		||||
-- Check for working C compiler: /usr/bin/clang -- works
 | 
			
		||||
-- Detecting C compiler ABI info
 | 
			
		||||
-- Detecting C compiler ABI info - done
 | 
			
		||||
-- Detecting C compile features
 | 
			
		||||
-- Detecting C compile features - done
 | 
			
		||||
-- Check for working CXX compiler: /usr/bin/clang++
 | 
			
		||||
-- Check for working CXX compiler: /usr/bin/clang++ -- works
 | 
			
		||||
-- Detecting CXX compiler ABI info
 | 
			
		||||
-- Detecting CXX compiler ABI info - done
 | 
			
		||||
-- Detecting CXX compile features
 | 
			
		||||
-- Detecting CXX compile features - done
 | 
			
		||||
-- Configuring done
 | 
			
		||||
-- Generating done
 | 
			
		||||
-- Build files have been written to: /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug
 | 
			
		||||
							
								
								
									
										1
									
								
								cmake-build-debug/CMakeFiles/cmake.check_cache
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cmake-build-debug/CMakeFiles/cmake.check_cache
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
 | 
			
		||||
							
								
								
									
										1
									
								
								cmake-build-debug/CMakeFiles/progress.marks
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cmake-build-debug/CMakeFiles/progress.marks
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
2
 | 
			
		||||
							
								
								
									
										178
									
								
								cmake-build-debug/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										178
									
								
								cmake-build-debug/Makefile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,178 @@
 | 
			
		||||
# CMAKE generated file: DO NOT EDIT!
 | 
			
		||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
 | 
			
		||||
 | 
			
		||||
# Default target executed when no arguments are given to make.
 | 
			
		||||
default_target: all
 | 
			
		||||
 | 
			
		||||
.PHONY : default_target
 | 
			
		||||
 | 
			
		||||
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
 | 
			
		||||
.NOTPARALLEL:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#=============================================================================
 | 
			
		||||
# Special targets provided by cmake.
 | 
			
		||||
 | 
			
		||||
# Disable implicit rules so canonical targets will work.
 | 
			
		||||
.SUFFIXES:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Remove some rules from gmake that .SUFFIXES does not remove.
 | 
			
		||||
SUFFIXES =
 | 
			
		||||
 | 
			
		||||
.SUFFIXES: .hpux_make_needs_suffix_list
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Suppress display of executed commands.
 | 
			
		||||
$(VERBOSE).SILENT:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# A target that is always out of date.
 | 
			
		||||
cmake_force:
 | 
			
		||||
 | 
			
		||||
.PHONY : cmake_force
 | 
			
		||||
 | 
			
		||||
#=============================================================================
 | 
			
		||||
# Set environment variables for the build.
 | 
			
		||||
 | 
			
		||||
# The shell in which to execute make rules.
 | 
			
		||||
SHELL = /bin/sh
 | 
			
		||||
 | 
			
		||||
# The CMake executable.
 | 
			
		||||
CMAKE_COMMAND = /usr/bin/cmake
 | 
			
		||||
 | 
			
		||||
# The command to remove a file.
 | 
			
		||||
RM = /usr/bin/cmake -E remove -f
 | 
			
		||||
 | 
			
		||||
# Escaping for special characters.
 | 
			
		||||
EQUALS = =
 | 
			
		||||
 | 
			
		||||
# The top-level source directory on which CMake was run.
 | 
			
		||||
CMAKE_SOURCE_DIR = /home/massiveatoms/Desktop/studieproject/homebrew
 | 
			
		||||
 | 
			
		||||
# The top-level build directory on which CMake was run.
 | 
			
		||||
CMAKE_BINARY_DIR = /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug
 | 
			
		||||
 | 
			
		||||
#=============================================================================
 | 
			
		||||
# Targets provided globally by CMake.
 | 
			
		||||
 | 
			
		||||
# Special rule for the target rebuild_cache
 | 
			
		||||
rebuild_cache:
 | 
			
		||||
	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
 | 
			
		||||
	/usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
 | 
			
		||||
.PHONY : rebuild_cache
 | 
			
		||||
 | 
			
		||||
# Special rule for the target rebuild_cache
 | 
			
		||||
rebuild_cache/fast: rebuild_cache
 | 
			
		||||
 | 
			
		||||
.PHONY : rebuild_cache/fast
 | 
			
		||||
 | 
			
		||||
# Special rule for the target edit_cache
 | 
			
		||||
edit_cache:
 | 
			
		||||
	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
 | 
			
		||||
	/usr/bin/cmake-gui -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
 | 
			
		||||
.PHONY : edit_cache
 | 
			
		||||
 | 
			
		||||
# Special rule for the target edit_cache
 | 
			
		||||
edit_cache/fast: edit_cache
 | 
			
		||||
 | 
			
		||||
.PHONY : edit_cache/fast
 | 
			
		||||
 | 
			
		||||
# The main all target
 | 
			
		||||
all: cmake_check_build_system
 | 
			
		||||
	$(CMAKE_COMMAND) -E cmake_progress_start /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles/progress.marks
 | 
			
		||||
	$(MAKE) -f CMakeFiles/Makefile2 all
 | 
			
		||||
	$(CMAKE_COMMAND) -E cmake_progress_start /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles 0
 | 
			
		||||
.PHONY : all
 | 
			
		||||
 | 
			
		||||
# The main clean target
 | 
			
		||||
clean:
 | 
			
		||||
	$(MAKE) -f CMakeFiles/Makefile2 clean
 | 
			
		||||
.PHONY : clean
 | 
			
		||||
 | 
			
		||||
# The main clean target
 | 
			
		||||
clean/fast: clean
 | 
			
		||||
 | 
			
		||||
.PHONY : clean/fast
 | 
			
		||||
 | 
			
		||||
# Prepare targets for installation.
 | 
			
		||||
preinstall: all
 | 
			
		||||
	$(MAKE) -f CMakeFiles/Makefile2 preinstall
 | 
			
		||||
.PHONY : preinstall
 | 
			
		||||
 | 
			
		||||
# Prepare targets for installation.
 | 
			
		||||
preinstall/fast:
 | 
			
		||||
	$(MAKE) -f CMakeFiles/Makefile2 preinstall
 | 
			
		||||
.PHONY : preinstall/fast
 | 
			
		||||
 | 
			
		||||
# clear depends
 | 
			
		||||
depend:
 | 
			
		||||
	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
 | 
			
		||||
.PHONY : depend
 | 
			
		||||
 | 
			
		||||
#=============================================================================
 | 
			
		||||
# Target rules for targets named another_studproject
 | 
			
		||||
 | 
			
		||||
# Build rule for target.
 | 
			
		||||
another_studproject: cmake_check_build_system
 | 
			
		||||
	$(MAKE) -f CMakeFiles/Makefile2 another_studproject
 | 
			
		||||
.PHONY : another_studproject
 | 
			
		||||
 | 
			
		||||
# fast build rule for target.
 | 
			
		||||
another_studproject/fast:
 | 
			
		||||
	$(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/build
 | 
			
		||||
.PHONY : another_studproject/fast
 | 
			
		||||
 | 
			
		||||
main.o: main.cpp.o
 | 
			
		||||
 | 
			
		||||
.PHONY : main.o
 | 
			
		||||
 | 
			
		||||
# target to build an object file
 | 
			
		||||
main.cpp.o:
 | 
			
		||||
	$(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/main.cpp.o
 | 
			
		||||
.PHONY : main.cpp.o
 | 
			
		||||
 | 
			
		||||
main.i: main.cpp.i
 | 
			
		||||
 | 
			
		||||
.PHONY : main.i
 | 
			
		||||
 | 
			
		||||
# target to preprocess a source file
 | 
			
		||||
main.cpp.i:
 | 
			
		||||
	$(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/main.cpp.i
 | 
			
		||||
.PHONY : main.cpp.i
 | 
			
		||||
 | 
			
		||||
main.s: main.cpp.s
 | 
			
		||||
 | 
			
		||||
.PHONY : main.s
 | 
			
		||||
 | 
			
		||||
# target to generate assembly for a file
 | 
			
		||||
main.cpp.s:
 | 
			
		||||
	$(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/main.cpp.s
 | 
			
		||||
.PHONY : main.cpp.s
 | 
			
		||||
 | 
			
		||||
# Help Target
 | 
			
		||||
help:
 | 
			
		||||
	@echo "The following are some of the valid targets for this Makefile:"
 | 
			
		||||
	@echo "... all (the default if no target is provided)"
 | 
			
		||||
	@echo "... clean"
 | 
			
		||||
	@echo "... depend"
 | 
			
		||||
	@echo "... rebuild_cache"
 | 
			
		||||
	@echo "... another_studproject"
 | 
			
		||||
	@echo "... edit_cache"
 | 
			
		||||
	@echo "... main.o"
 | 
			
		||||
	@echo "... main.i"
 | 
			
		||||
	@echo "... main.s"
 | 
			
		||||
.PHONY : help
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#=============================================================================
 | 
			
		||||
# Special targets to cleanup operation of make.
 | 
			
		||||
 | 
			
		||||
# Special rule to run CMake to check the build system integrity.
 | 
			
		||||
# No rule that depends on this can have commands that come from listfiles
 | 
			
		||||
# because they might be regenerated.
 | 
			
		||||
cmake_check_build_system:
 | 
			
		||||
	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
 | 
			
		||||
.PHONY : cmake_check_build_system
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								cmake-build-debug/another_studproject
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								cmake-build-debug/another_studproject
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										90
									
								
								cmake-build-debug/another_studproject.cbp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								cmake-build-debug/another_studproject.cbp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<CodeBlocks_project_file>
 | 
			
		||||
	<FileVersion major="1" minor="6"/>
 | 
			
		||||
	<Project>
 | 
			
		||||
		<Option title="another_studproject"/>
 | 
			
		||||
		<Option makefile_is_custom="1"/>
 | 
			
		||||
		<Option compiler="clang"/>
 | 
			
		||||
		<Option virtualFolders="CMake Files\;"/>
 | 
			
		||||
		<Build>
 | 
			
		||||
			<Target title="all">
 | 
			
		||||
				<Option working_dir="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug"/>
 | 
			
		||||
				<Option type="4"/>
 | 
			
		||||
				<MakeCommands>
 | 
			
		||||
					<Build command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 all"/>
 | 
			
		||||
					<CompileFile command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 "$file""/>
 | 
			
		||||
					<Clean command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 clean"/>
 | 
			
		||||
					<DistClean command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 clean"/>
 | 
			
		||||
				</MakeCommands>
 | 
			
		||||
			</Target>
 | 
			
		||||
			<Target title="rebuild_cache">
 | 
			
		||||
				<Option working_dir="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug"/>
 | 
			
		||||
				<Option type="4"/>
 | 
			
		||||
				<MakeCommands>
 | 
			
		||||
					<Build command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 rebuild_cache"/>
 | 
			
		||||
					<CompileFile command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 "$file""/>
 | 
			
		||||
					<Clean command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 clean"/>
 | 
			
		||||
					<DistClean command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 clean"/>
 | 
			
		||||
				</MakeCommands>
 | 
			
		||||
			</Target>
 | 
			
		||||
			<Target title="another_studproject">
 | 
			
		||||
				<Option output="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/another_studproject" prefix_auto="0" extension_auto="0"/>
 | 
			
		||||
				<Option working_dir="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug"/>
 | 
			
		||||
				<Option object_output="./"/>
 | 
			
		||||
				<Option type="1"/>
 | 
			
		||||
				<Option compiler="clang"/>
 | 
			
		||||
				<Compiler>
 | 
			
		||||
					<Add directory="/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0"/>
 | 
			
		||||
					<Add directory="/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/x86_64-pc-linux-gnu"/>
 | 
			
		||||
					<Add directory="/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/backward"/>
 | 
			
		||||
					<Add directory="/usr/local/include"/>
 | 
			
		||||
					<Add directory="/usr/lib/clang/9.0.0/include"/>
 | 
			
		||||
					<Add directory="/usr/include"/>
 | 
			
		||||
				</Compiler>
 | 
			
		||||
				<MakeCommands>
 | 
			
		||||
					<Build command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 another_studproject"/>
 | 
			
		||||
					<CompileFile command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 "$file""/>
 | 
			
		||||
					<Clean command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 clean"/>
 | 
			
		||||
					<DistClean command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 clean"/>
 | 
			
		||||
				</MakeCommands>
 | 
			
		||||
			</Target>
 | 
			
		||||
			<Target title="another_studproject/fast">
 | 
			
		||||
				<Option output="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/another_studproject" prefix_auto="0" extension_auto="0"/>
 | 
			
		||||
				<Option working_dir="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug"/>
 | 
			
		||||
				<Option object_output="./"/>
 | 
			
		||||
				<Option type="1"/>
 | 
			
		||||
				<Option compiler="clang"/>
 | 
			
		||||
				<Compiler>
 | 
			
		||||
					<Add directory="/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0"/>
 | 
			
		||||
					<Add directory="/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/x86_64-pc-linux-gnu"/>
 | 
			
		||||
					<Add directory="/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/backward"/>
 | 
			
		||||
					<Add directory="/usr/local/include"/>
 | 
			
		||||
					<Add directory="/usr/lib/clang/9.0.0/include"/>
 | 
			
		||||
					<Add directory="/usr/include"/>
 | 
			
		||||
				</Compiler>
 | 
			
		||||
				<MakeCommands>
 | 
			
		||||
					<Build command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 another_studproject/fast"/>
 | 
			
		||||
					<CompileFile command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 "$file""/>
 | 
			
		||||
					<Clean command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 clean"/>
 | 
			
		||||
					<DistClean command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 clean"/>
 | 
			
		||||
				</MakeCommands>
 | 
			
		||||
			</Target>
 | 
			
		||||
			<Target title="edit_cache">
 | 
			
		||||
				<Option working_dir="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug"/>
 | 
			
		||||
				<Option type="4"/>
 | 
			
		||||
				<MakeCommands>
 | 
			
		||||
					<Build command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 edit_cache"/>
 | 
			
		||||
					<CompileFile command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 "$file""/>
 | 
			
		||||
					<Clean command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 clean"/>
 | 
			
		||||
					<DistClean command="/usr/bin/make -j4 -f "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile"  VERBOSE=1 clean"/>
 | 
			
		||||
				</MakeCommands>
 | 
			
		||||
			</Target>
 | 
			
		||||
		</Build>
 | 
			
		||||
		<Unit filename="/home/massiveatoms/Desktop/studieproject/homebrew/main.cpp">
 | 
			
		||||
			<Option target="another_studproject"/>
 | 
			
		||||
		</Unit>
 | 
			
		||||
		<Unit filename="/home/massiveatoms/Desktop/studieproject/homebrew/CMakeLists.txt">
 | 
			
		||||
			<Option virtualFolder="CMake Files\"/>
 | 
			
		||||
		</Unit>
 | 
			
		||||
	</Project>
 | 
			
		||||
</CodeBlocks_project_file>
 | 
			
		||||
							
								
								
									
										49
									
								
								cmake-build-debug/cmake_install.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								cmake-build-debug/cmake_install.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
# Install script for directory: /home/massiveatoms/Desktop/studieproject/homebrew
 | 
			
		||||
 | 
			
		||||
# Set the install prefix
 | 
			
		||||
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
 | 
			
		||||
  set(CMAKE_INSTALL_PREFIX "/usr/local")
 | 
			
		||||
endif()
 | 
			
		||||
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
 | 
			
		||||
 | 
			
		||||
# Set the install configuration name.
 | 
			
		||||
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
 | 
			
		||||
  if(BUILD_TYPE)
 | 
			
		||||
    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
 | 
			
		||||
           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
 | 
			
		||||
  else()
 | 
			
		||||
    set(CMAKE_INSTALL_CONFIG_NAME "Debug")
 | 
			
		||||
  endif()
 | 
			
		||||
  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Set the component getting installed.
 | 
			
		||||
if(NOT CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  if(COMPONENT)
 | 
			
		||||
    message(STATUS "Install component: \"${COMPONENT}\"")
 | 
			
		||||
    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
 | 
			
		||||
  else()
 | 
			
		||||
    set(CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Install shared libraries without execute permission?
 | 
			
		||||
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
 | 
			
		||||
  set(CMAKE_INSTALL_SO_NO_EXE "0")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Is this installation the result of a crosscompile?
 | 
			
		||||
if(NOT DEFINED CMAKE_CROSSCOMPILING)
 | 
			
		||||
  set(CMAKE_CROSSCOMPILING "FALSE")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
 | 
			
		||||
else()
 | 
			
		||||
  set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
 | 
			
		||||
       "${CMAKE_INSTALL_MANIFEST_FILES}")
 | 
			
		||||
file(WRITE "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}"
 | 
			
		||||
     "${CMAKE_INSTALL_MANIFEST_CONTENT}")
 | 
			
		||||
							
								
								
									
										15
									
								
								main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								main.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <unordered_map>
 | 
			
		||||
#include <functional>
 | 
			
		||||
#include <fstream>
 | 
			
		||||
 | 
			
		||||
#include "./src/includes/aggregate_tests.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// typedef std::unordered_map<int,int> map;
 | 
			
		||||
int main() {
 | 
			
		||||
    string_test(std::unordered_map<std::string, std::string>{}, 10);
 | 
			
		||||
    int_test(std::unordered_map<int, int>{}, 10);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										160
									
								
								results.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										160
									
								
								results.csv
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,160 @@
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 407.000000, 345.000000, 325.000000, 402.000000, 475.000000, 378.000000, 476.000000, 553.000000, 369.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 226.000000, 282.000000, 294.000000, 429.000000, 332.000000, 307.000000, 483.000000, 372.000000, 382.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 248.000000, 256.000000, 288.000000, 736.000000, 518.000000, 416.000000, 559.000000, 413.000000, 531.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 587.000000, 268.000000, 376.000000, 306.000000, 330.000000, 301.000000, 484.000000, 530.000000, 408.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 222.000000, 280.000000, 320.000000, 359.000000, 319.000000, 313.000000, 389.000000, 411.000000, 429.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 237.000000, 270.000000, 432.000000, 327.000000, 322.000000, 371.000000, 462.000000, 380.000000, 398.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 378.000000, 399.000000, 374.000000, 311.000000, 319.000000, 325.000000, 375.000000, 535.000000, 387.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 212.000000, 264.000000, 295.000000, 305.000000, 325.000000, 323.000000, 385.000000, 400.000000, 388.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 205.000000, 265.000000, 292.000000, 327.000000, 390.000000, 512.000000, 379.000000, 377.000000, 433.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 273.000000, 289.000000, 296.000000, 321.000000, 319.000000, 330.000000, 410.000000, 380.000000, 397.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 289.000000, 370.000000, 421.000000, 383.000000, 300.000000, 300.000000, 311.000000, 309.000000, 306.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 197.000000, 251.000000, 275.000000, 295.000000, 298.000000, 299.000000, 307.000000, 306.000000, 313.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 196.000000, 261.000000, 281.000000, 470.000000, 452.000000, 436.000000, 465.000000, 377.000000, 493.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 293.000000, 379.000000, 281.000000, 313.000000, 303.000000, 418.000000, 356.000000, 449.000000, 408.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 329.000000, 436.000000, 521.000000, 419.000000, 378.000000, 401.000000, 334.000000, 316.000000, 324.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 192.000000, 253.000000, 273.000000, 289.000000, 335.000000, 379.000000, 451.000000, 305.000000, 310.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 334.000000, 392.000000, 396.000000, 390.000000, 358.000000, 539.000000, 309.000000, 384.000000, 309.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 195.000000, 254.000000, 318.000000, 346.000000, 421.000000, 508.000000, 300.000000, 303.000000, 351.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 190.000000, 253.000000, 275.000000, 284.000000, 300.000000, 297.000000, 306.000000, 310.000000, 303.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 199.000000, 251.000000, 424.000000, 282.000000, 411.000000, 492.000000, 316.000000, 313.000000, 339.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 553.000000, 1172.000000, 1701.000000, 2099.000000, 2720.000000, 337.000000, 3647.000000, 371.000000, 374.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 530.000000, 1105.000000, 1681.000000, 2041.000000, 2590.000000, 382.000000, 3663.000000, 350.000000, 415.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 516.000000, 1125.000000, 1650.000000, 2003.000000, 2577.000000, 328.000000, 3664.000000, 353.000000, 377.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 523.000000, 1102.000000, 1730.000000, 2048.000000, 2656.000000, 329.000000, 3696.000000, 367.000000, 384.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 554.000000, 1127.000000, 2172.000000, 2053.000000, 2628.000000, 327.000000, 3679.000000, 354.000000, 398.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 866.000000, 1107.000000, 1661.000000, 2123.000000, 4012.000000, 495.000000, 3656.000000, 388.000000, 386.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 545.000000, 1110.000000, 1670.000000, 2016.000000, 2584.000000, 346.000000, 3709.000000, 380.000000, 537.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 743.000000, 1101.000000, 1632.000000, 2068.000000, 2634.000000, 453.000000, 5471.000000, 362.000000, 374.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 520.000000, 1111.000000, 1642.000000, 2019.000000, 2634.000000, 338.000000, 3689.000000, 362.000000, 519.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 746.000000, 1643.000000, 1814.000000, 2035.000000, 2678.000000, 363.000000, 4307.000000, 512.000000, 383.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 418.000000, 423.000000, 486.000000, 356.000000, 465.000000, 368.000000, 390.000000, 378.000000, 395.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 242.000000, 317.000000, 342.000000, 451.000000, 366.000000, 376.000000, 383.000000, 374.000000, 455.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 239.000000, 314.000000, 340.000000, 356.000000, 359.000000, 370.000000, 376.000000, 385.000000, 389.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 233.000000, 309.000000, 336.000000, 356.000000, 363.000000, 368.000000, 372.000000, 381.000000, 386.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 249.000000, 313.000000, 351.000000, 350.000000, 680.000000, 367.000000, 490.000000, 385.000000, 400.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 272.000000, 312.000000, 348.000000, 360.000000, 397.000000, 366.000000, 388.000000, 490.000000, 496.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 294.000000, 320.000000, 336.000000, 355.000000, 364.000000, 372.000000, 372.000000, 389.000000, 552.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 234.000000, 313.000000, 368.000000, 352.000000, 597.000000, 410.000000, 468.000000, 387.000000, 385.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 241.000000, 458.000000, 578.000000, 354.000000, 360.000000, 373.000000, 376.000000, 386.000000, 543.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 396.000000, 518.000000, 499.000000, 571.000000, 500.000000, 524.000000, 568.000000, 486.000000, 393.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 107.000000, 164.000000, 260.000000, 223.000000, 268.000000, 387.000000, 379.000000, 325.000000, 299.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 124.000000, 157.000000, 196.000000, 225.000000, 252.000000, 245.000000, 252.000000, 271.000000, 270.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 93.000000, 184.000000, 272.000000, 217.000000, 242.000000, 255.000000, 308.000000, 259.000000, 257.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 99.000000, 162.000000, 191.000000, 230.000000, 257.000000, 246.000000, 255.000000, 262.000000, 266.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 97.000000, 171.000000, 202.000000, 231.000000, 244.000000, 240.000000, 260.000000, 352.000000, 266.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 92.000000, 167.000000, 202.000000, 225.000000, 237.000000, 241.000000, 256.000000, 270.000000, 264.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 98.000000, 226.000000, 201.000000, 236.000000, 342.000000, 400.000000, 268.000000, 375.000000, 259.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 100.000000, 163.000000, 200.000000, 220.000000, 236.000000, 236.000000, 318.000000, 266.000000, 269.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 104.000000, 157.000000, 198.000000, 221.000000, 262.000000, 238.000000, 251.000000, 263.000000, 265.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 187.000000, 163.000000, 213.000000, 226.000000, 233.000000, 351.000000, 256.000000, 256.000000, 259.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 51.000000, 74.000000, 89.000000, 159.000000, 111.000000, 112.000000, 119.000000, 249.000000, 117.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 38.000000, 75.000000, 135.000000, 106.000000, 175.000000, 150.000000, 124.000000, 132.000000, 128.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 39.000000, 97.000000, 90.000000, 253.000000, 234.000000, 118.000000, 113.000000, 119.000000, 205.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 97.000000, 153.000000, 95.000000, 108.000000, 110.000000, 229.000000, 116.000000, 120.000000, 120.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 42.000000, 72.000000, 119.000000, 106.000000, 259.000000, 110.000000, 185.000000, 114.000000, 119.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 41.000000, 92.000000, 93.000000, 116.000000, 125.000000, 107.000000, 126.000000, 115.000000, 151.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 35.000000, 71.000000, 95.000000, 101.000000, 114.000000, 115.000000, 116.000000, 117.000000, 119.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 38.000000, 74.000000, 92.000000, 116.000000, 118.000000, 113.000000, 120.000000, 119.000000, 118.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 36.000000, 71.000000, 99.000000, 112.000000, 111.000000, 118.000000, 120.000000, 116.000000, 121.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 47.000000, 80.000000, 93.000000, 99.000000, 108.000000, 109.000000, 113.000000, 115.000000, 121.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 518.000000, 684.000000, 1106.000000, 1448.000000, 2930.000000, 385.000000, 2598.000000, 267.000000, 273.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 267.000000, 691.000000, 1114.000000, 1449.000000, 1874.000000, 248.000000, 4059.000000, 253.000000, 281.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 244.000000, 686.000000, 1231.000000, 1441.000000, 2799.000000, 385.000000, 4337.000000, 367.000000, 489.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 549.000000, 1295.000000, 1773.000000, 2237.000000, 3013.000000, 305.000000, 3861.000000, 373.000000, 318.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 603.000000, 1225.000000, 1791.000000, 2229.000000, 2864.000000, 386.000000, 3968.000000, 300.000000, 392.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 483.000000, 1295.000000, 1895.000000, 2190.000000, 2944.000000, 338.000000, 2703.000000, 269.000000, 349.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 255.000000, 672.000000, 1208.000000, 1420.000000, 1865.000000, 254.000000, 3089.000000, 309.000000, 278.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 386.000000, 788.000000, 1113.000000, 1428.000000, 2467.000000, 257.000000, 2606.000000, 263.000000, 272.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 253.000000, 695.000000, 1134.000000, 1907.000000, 1862.000000, 341.000000, 3456.000000, 269.000000, 275.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 393.000000, 702.000000, 1240.000000, 1444.000000, 1882.000000, 265.000000, 2602.000000, 268.000000, 269.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 81.000000, 170.000000, 221.000000, 254.000000, 284.000000, 315.000000, 301.000000, 316.000000, 325.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 92.000000, 178.000000, 225.000000, 252.000000, 281.000000, 289.000000, 308.000000, 342.000000, 321.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 83.000000, 172.000000, 227.000000, 262.000000, 292.000000, 284.000000, 302.000000, 310.000000, 319.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 89.000000, 153.000000, 226.000000, 268.000000, 278.000000, 305.000000, 308.000000, 317.000000, 325.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 76.000000, 172.000000, 219.000000, 260.000000, 276.000000, 290.000000, 307.000000, 361.000000, 322.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 113.000000, 164.000000, 225.000000, 254.000000, 276.000000, 295.000000, 308.000000, 309.000000, 316.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 91.000000, 170.000000, 227.000000, 271.000000, 274.000000, 287.000000, 305.000000, 308.000000, 341.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 82.000000, 166.000000, 223.000000, 258.000000, 287.000000, 294.000000, 311.000000, 312.000000, 316.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 73.000000, 157.000000, 222.000000, 257.000000, 281.000000, 294.000000, 298.000000, 313.000000, 317.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 101.000000, 166.000000, 219.000000, 267.000000, 281.000000, 293.000000, 309.000000, 630.000000, 309.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 342.000000, 349.000000, 341.000000, 411.000000, 445.000000, 519.000000, 556.000000, 434.000000, 728.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 505.000000, 783.000000, 539.000000, 554.000000, 639.000000, 445.000000, 534.000000, 648.000000, 460.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 543.000000, 312.000000, 409.000000, 438.000000, 338.000000, 324.000000, 380.000000, 379.000000, 389.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 267.000000, 286.000000, 588.000000, 321.000000, 394.000000, 521.000000, 631.000000, 599.000000, 421.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 434.000000, 519.000000, 311.000000, 317.000000, 328.000000, 333.000000, 393.000000, 389.000000, 496.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 233.000000, 274.000000, 410.000000, 322.000000, 325.000000, 322.000000, 379.000000, 391.000000, 391.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 273.000000, 276.000000, 315.000000, 346.000000, 344.000000, 322.000000, 387.000000, 392.000000, 394.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 226.000000, 266.000000, 351.000000, 323.000000, 324.000000, 320.000000, 385.000000, 388.000000, 398.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 228.000000, 286.000000, 296.000000, 329.000000, 327.000000, 319.000000, 392.000000, 512.000000, 387.000000, 
 | 
			
		||||
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 234.000000, 283.000000, 314.000000, 329.000000, 328.000000, 327.000000, 389.000000, 392.000000, 567.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 226.000000, 259.000000, 281.000000, 427.000000, 294.000000, 312.000000, 306.000000, 311.000000, 317.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 199.000000, 252.000000, 333.000000, 291.000000, 296.000000, 299.000000, 313.000000, 309.000000, 309.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 190.000000, 257.000000, 274.000000, 295.000000, 300.000000, 310.000000, 302.000000, 441.000000, 318.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 193.000000, 257.000000, 272.000000, 296.000000, 296.000000, 297.000000, 302.000000, 316.000000, 325.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 204.000000, 316.000000, 274.000000, 298.000000, 295.000000, 312.000000, 683.000000, 529.000000, 437.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 249.000000, 259.000000, 282.000000, 290.000000, 297.000000, 311.000000, 305.000000, 355.000000, 308.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 201.000000, 266.000000, 277.000000, 288.000000, 304.000000, 305.000000, 308.000000, 307.000000, 318.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 251.000000, 263.000000, 351.000000, 299.000000, 473.000000, 369.000000, 302.000000, 314.000000, 313.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 202.000000, 263.000000, 276.000000, 294.000000, 290.000000, 345.000000, 312.000000, 309.000000, 320.000000, 
 | 
			
		||||
lookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 197.000000, 278.000000, 281.000000, 287.000000, 299.000000, 298.000000, 304.000000, 308.000000, 402.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 1304.000000, 2393.000000, 2306.000000, 2037.000000, 2707.000000, 343.000000, 3732.000000, 382.000000, 372.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 535.000000, 1283.000000, 1671.000000, 2045.000000, 2595.000000, 336.000000, 4208.000000, 363.000000, 387.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 511.000000, 1172.000000, 1649.000000, 2012.000000, 2695.000000, 334.000000, 3733.000000, 370.000000, 388.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 528.000000, 1114.000000, 1817.000000, 2334.000000, 2650.000000, 331.000000, 3752.000000, 360.000000, 376.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 532.000000, 1085.000000, 1640.000000, 2036.000000, 2826.000000, 336.000000, 3773.000000, 348.000000, 387.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 519.000000, 1186.000000, 1766.000000, 2033.000000, 2587.000000, 332.000000, 4916.000000, 369.000000, 428.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 520.000000, 1106.000000, 1683.000000, 2039.000000, 2588.000000, 339.000000, 3752.000000, 366.000000, 388.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 514.000000, 1111.000000, 1961.000000, 2000.000000, 2579.000000, 325.000000, 3766.000000, 366.000000, 383.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 542.000000, 1099.000000, 1651.000000, 2038.000000, 2605.000000, 329.000000, 3835.000000, 360.000000, 389.000000, 
 | 
			
		||||
nolookup_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 513.000000, 1093.000000, 1717.000000, 2062.000000, 2655.000000, 334.000000, 4419.000000, 356.000000, 384.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 237.000000, 314.000000, 343.000000, 366.000000, 360.000000, 362.000000, 383.000000, 383.000000, 395.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 234.000000, 314.000000, 345.000000, 348.000000, 416.000000, 359.000000, 392.000000, 379.000000, 390.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 228.000000, 315.000000, 333.000000, 349.000000, 364.000000, 420.000000, 376.000000, 381.000000, 384.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 244.000000, 310.000000, 337.000000, 357.000000, 357.000000, 360.000000, 400.000000, 385.000000, 392.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 245.000000, 311.000000, 339.000000, 360.000000, 362.000000, 367.000000, 384.000000, 382.000000, 431.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 255.000000, 306.000000, 331.000000, 352.000000, 364.000000, 368.000000, 453.000000, 379.000000, 399.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 248.000000, 309.000000, 339.000000, 352.000000, 357.000000, 368.000000, 386.000000, 381.000000, 382.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 233.000000, 321.000000, 344.000000, 355.000000, 357.000000, 370.000000, 387.000000, 375.000000, 389.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 237.000000, 312.000000, 341.000000, 355.000000, 366.000000, 436.000000, 382.000000, 378.000000, 392.000000, 
 | 
			
		||||
delete_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 241.000000, 313.000000, 341.000000, 395.000000, 367.000000, 373.000000, 417.000000, 376.000000, 386.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 100.000000, 166.000000, 208.000000, 220.000000, 232.000000, 241.000000, 268.000000, 304.000000, 267.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 121.000000, 151.000000, 195.000000, 288.000000, 231.000000, 244.000000, 250.000000, 265.000000, 274.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 109.000000, 160.000000, 205.000000, 232.000000, 250.000000, 284.000000, 253.000000, 277.000000, 276.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 100.000000, 170.000000, 199.000000, 227.000000, 233.000000, 255.000000, 257.000000, 256.000000, 267.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 119.000000, 162.000000, 205.000000, 236.000000, 296.000000, 242.000000, 257.000000, 257.000000, 271.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 109.000000, 295.000000, 214.000000, 241.000000, 240.000000, 238.000000, 263.000000, 265.000000, 263.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 94.000000, 171.000000, 199.000000, 243.000000, 236.000000, 240.000000, 271.000000, 259.000000, 271.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 103.000000, 162.000000, 203.000000, 230.000000, 254.000000, 252.000000, 260.000000, 264.000000, 317.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 159.000000, 163.000000, 199.000000, 227.000000, 239.000000, 236.000000, 289.000000, 268.000000, 262.000000, 
 | 
			
		||||
insert_int, 'std::unordered_map<int, int>', 97.000000, 157.000000, 195.000000, 221.000000, 256.000000, 240.000000, 258.000000, 281.000000, 268.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 42.000000, 82.000000, 89.000000, 103.000000, 113.000000, 112.000000, 115.000000, 113.000000, 116.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 38.000000, 69.000000, 87.000000, 102.000000, 107.000000, 109.000000, 116.000000, 118.000000, 124.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 38.000000, 73.000000, 104.000000, 101.000000, 109.000000, 109.000000, 114.000000, 125.000000, 126.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 50.000000, 113.000000, 92.000000, 112.000000, 106.000000, 150.000000, 149.000000, 129.000000, 118.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 42.000000, 83.000000, 94.000000, 108.000000, 110.000000, 192.000000, 119.000000, 120.000000, 118.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 39.000000, 72.000000, 94.000000, 105.000000, 109.000000, 115.000000, 119.000000, 116.000000, 128.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 39.000000, 73.000000, 95.000000, 101.000000, 112.000000, 111.000000, 117.000000, 112.000000, 124.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 36.000000, 72.000000, 93.000000, 97.000000, 110.000000, 109.000000, 117.000000, 128.000000, 120.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 38.000000, 74.000000, 108.000000, 104.000000, 105.000000, 110.000000, 115.000000, 119.000000, 117.000000, 
 | 
			
		||||
lookup_int, 'std::unordered_map<int, int>', 36.000000, 76.000000, 93.000000, 99.000000, 111.000000, 110.000000, 126.000000, 119.000000, 118.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 281.000000, 709.000000, 1156.000000, 1440.000000, 1869.000000, 251.000000, 2553.000000, 269.000000, 271.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 251.000000, 689.000000, 1134.000000, 1444.000000, 1877.000000, 250.000000, 2580.000000, 263.000000, 271.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 241.000000, 693.000000, 1114.000000, 1676.000000, 1891.000000, 361.000000, 2543.000000, 262.000000, 273.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 255.000000, 691.000000, 1446.000000, 1435.000000, 1873.000000, 251.000000, 2567.000000, 271.000000, 271.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 262.000000, 688.000000, 1139.000000, 1436.000000, 2272.000000, 247.000000, 2576.000000, 271.000000, 271.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 264.000000, 716.000000, 1148.000000, 1451.000000, 1869.000000, 251.000000, 2579.000000, 265.000000, 269.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 234.000000, 680.000000, 1145.000000, 1505.000000, 1887.000000, 310.000000, 2555.000000, 276.000000, 269.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 242.000000, 676.000000, 1139.000000, 1438.000000, 1923.000000, 255.000000, 2591.000000, 269.000000, 281.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 260.000000, 726.000000, 1152.000000, 1462.000000, 1896.000000, 267.000000, 2622.000000, 265.000000, 274.000000, 
 | 
			
		||||
nolookup_int, 'std::unordered_map<int, int>', 285.000000, 708.000000, 1134.000000, 1439.000000, 1859.000000, 259.000000, 2568.000000, 262.000000, 276.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 99.000000, 186.000000, 234.000000, 257.000000, 271.000000, 288.000000, 304.000000, 310.000000, 320.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 86.000000, 189.000000, 261.000000, 265.000000, 292.000000, 295.000000, 298.000000, 312.000000, 334.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 106.000000, 213.000000, 225.000000, 258.000000, 280.000000, 287.000000, 297.000000, 313.000000, 322.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 89.000000, 168.000000, 231.000000, 256.000000, 281.000000, 287.000000, 310.000000, 312.000000, 317.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 249.000000, 196.000000, 224.000000, 266.000000, 279.000000, 295.000000, 304.000000, 304.000000, 320.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 98.000000, 175.000000, 233.000000, 256.000000, 283.000000, 292.000000, 305.000000, 307.000000, 331.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 87.000000, 174.000000, 227.000000, 244.000000, 297.000000, 290.000000, 300.000000, 316.000000, 320.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 97.000000, 172.000000, 221.000000, 289.000000, 276.000000, 285.000000, 304.000000, 324.000000, 321.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 95.000000, 169.000000, 225.000000, 251.000000, 286.000000, 291.000000, 301.000000, 314.000000, 328.000000, 
 | 
			
		||||
delete_int, 'std::unordered_map<int, int>', 91.000000, 194.000000, 382.000000, 271.000000, 298.000000, 295.000000, 316.000000, 304.000000, 317.000000, 
 | 
			
		||||
		
		
			
  | 
							
								
								
									
										28
									
								
								src/generator.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/generator.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
 
 | 
			
		||||
#include "./includes/generator.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
std::string gen_string() { // 90^size posibilities
 | 
			
		||||
    std::string randomstring;
 | 
			
		||||
    for (int i = 0; i < 5; ++i) {
 | 
			
		||||
        randomstring += gen_char(generator);
 | 
			
		||||
    }
 | 
			
		||||
    return randomstring;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::string gen_unsuccesfull_string() { // 90^size posibilities
 | 
			
		||||
    std::string randomstring;
 | 
			
		||||
    for (int i = 0; i < 4; ++i) {
 | 
			
		||||
        randomstring += gen_char(generator);
 | 
			
		||||
    }
 | 
			
		||||
    return randomstring;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int gen_int(){
 | 
			
		||||
    return gen_insert_int(generator);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int gen_unsuccesfull_int(){
 | 
			
		||||
    return gen_noninsert_int(generator);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										151
									
								
								src/includes/aggregate_tests.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								src/includes/aggregate_tests.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,151 @@
 | 
			
		||||
#ifndef ATESTS_H
 | 
			
		||||
#define ATESTS_H
 | 
			
		||||
#include <string>
 | 
			
		||||
#include "./tests.h"
 | 
			
		||||
#include <ostream>
 | 
			
		||||
#include <iostream>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
std::vector<int> sizes = {
 | 
			
		||||
    50000, 100000, 150000, 200000, 250000, 300000, 350000, 400000, 500000, 
 | 
			
		||||
    600000, 700000, 800000, 900000, 1000000,
 | 
			
		||||
    2000000, 3000000, 4000000, 5000000, 6000000, 7000000, 8000000, 9000000, 10000000,
 | 
			
		||||
    15000000, 20000000, 25000000, 30000000, 35000000, 40000000, 45000000, 50000000
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// to print type info
 | 
			
		||||
 | 
			
		||||
template <typename T>
 | 
			
		||||
constexpr auto type_name()
 | 
			
		||||
{
 | 
			
		||||
    std::string_view name, prefix, suffix;
 | 
			
		||||
#ifdef __clang__
 | 
			
		||||
    name = __PRETTY_FUNCTION__;
 | 
			
		||||
    prefix = "auto type_name() [T = ";
 | 
			
		||||
    suffix = "]";
 | 
			
		||||
#elif defined(__GNUC__)
 | 
			
		||||
    name = __PRETTY_FUNCTION__;
 | 
			
		||||
    prefix = "constexpr auto type_name() [with T = ";
 | 
			
		||||
    suffix = "]";
 | 
			
		||||
#elif defined(_MSC_VER)
 | 
			
		||||
    name = __FUNCSIG__;
 | 
			
		||||
    prefix = "auto __cdecl type_name<";
 | 
			
		||||
    suffix = ">(void)";
 | 
			
		||||
#endif
 | 
			
		||||
    name.remove_prefix(prefix.size());
 | 
			
		||||
    name.remove_suffix(suffix.size());
 | 
			
		||||
    return name;
 | 
			
		||||
}   
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template<class T>
 | 
			
		||||
std::basic_string_view<char> name(T var){
 | 
			
		||||
    return type_name<decltype(var)>();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template<class T>
 | 
			
		||||
int int_test(T map, int repeats=30){
 | 
			
		||||
    std::ofstream output{"results.csv", std::ios_base::app};
 | 
			
		||||
    // insert int tests
 | 
			
		||||
    for (int i = 0; i < repeats; ++i){
 | 
			
		||||
        std::string resultline = "insert_int, '" + std::string{name(map)} + "', ";
 | 
			
		||||
        for (auto size: sizes){
 | 
			
		||||
            std::cout << size << ", ";
 | 
			
		||||
            float result = insert_int_test(size, T{}).count();
 | 
			
		||||
            resultline += std::to_string(result);
 | 
			
		||||
            resultline += ", ";
 | 
			
		||||
        }
 | 
			
		||||
        output << resultline << "\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // lookup int
 | 
			
		||||
        for (int i = 0; i < repeats; ++i){
 | 
			
		||||
        std::string resultline = "lookup_int, '" + std::string{name(map)} + "', ";
 | 
			
		||||
        for (auto size: sizes){
 | 
			
		||||
            float result = lookup_int_test(size, T{}).count();
 | 
			
		||||
            resultline += std::to_string(result);
 | 
			
		||||
            resultline += ", ";
 | 
			
		||||
        }
 | 
			
		||||
        output << resultline << "\n";
 | 
			
		||||
    }
 | 
			
		||||
    // unsuccesful lookup
 | 
			
		||||
    for (int i = 0; i < repeats; ++i){
 | 
			
		||||
    std::string resultline = "nolookup_int, '" + std::string{name(map)} + "', ";
 | 
			
		||||
    for (auto size: sizes){
 | 
			
		||||
        float result = nolookup_int_test(size, T{}).count();
 | 
			
		||||
        resultline += std::to_string(result);
 | 
			
		||||
        resultline += ", ";
 | 
			
		||||
        }
 | 
			
		||||
    output << resultline << "\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // deletion
 | 
			
		||||
    for (int i = 0; i < repeats; ++i){
 | 
			
		||||
    std::string resultline = "delete_int, '" + std::string{name(map)} + "', ";
 | 
			
		||||
    for (auto size: sizes){
 | 
			
		||||
        float result = delete_int_test(size, T{}).count();
 | 
			
		||||
        resultline += std::to_string(result);
 | 
			
		||||
        resultline += ", ";
 | 
			
		||||
        }
 | 
			
		||||
    output << resultline << "\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template<class T>
 | 
			
		||||
int string_test(T map, int repeats=30){
 | 
			
		||||
    std::ofstream output{"results.csv", std::ios_base::app};
 | 
			
		||||
    // insert int tests
 | 
			
		||||
    for (int i = 0; i < repeats; ++i){
 | 
			
		||||
        std::string resultline = "insert_string, '" + std::string{name(map)} + "', ";
 | 
			
		||||
        for (auto size: sizes){
 | 
			
		||||
            float result = insert_string_test(size, T{}).count();
 | 
			
		||||
            resultline += std::to_string(result);
 | 
			
		||||
            resultline += ", ";
 | 
			
		||||
        }
 | 
			
		||||
        output << resultline << "\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // lookup int
 | 
			
		||||
        for (int i = 0; i < repeats; ++i){
 | 
			
		||||
        std::string resultline = "lookup_string, '" + std::string{name(map)} + "', ";
 | 
			
		||||
        for (auto size: sizes){
 | 
			
		||||
            float result = lookup_string_test(size, T{}).count();
 | 
			
		||||
            resultline += std::to_string(result);
 | 
			
		||||
            resultline += ", ";
 | 
			
		||||
        }
 | 
			
		||||
        output << resultline << "\n";
 | 
			
		||||
    }
 | 
			
		||||
    // unsuccesful lookup
 | 
			
		||||
    for (int i = 0; i < repeats; ++i){
 | 
			
		||||
    std::string resultline = "nolookup_string, '" + std::string{name(map)} + "', ";
 | 
			
		||||
    for (auto size: sizes){
 | 
			
		||||
        float result = nolookup_string_test(size, T{}).count();
 | 
			
		||||
        resultline += std::to_string(result);
 | 
			
		||||
        resultline += ", ";
 | 
			
		||||
        }
 | 
			
		||||
    output << resultline << "\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // deletion
 | 
			
		||||
    for (int i = 0; i < repeats; ++i){
 | 
			
		||||
    std::string resultline = "delete_string, '" + std::string{name(map)} + "', ";
 | 
			
		||||
    for (auto size: sizes){
 | 
			
		||||
        float result = delete_string_test(size, T{}).count();
 | 
			
		||||
        resultline += std::to_string(result);
 | 
			
		||||
        resultline += ", ";
 | 
			
		||||
        }
 | 
			
		||||
    output << resultline << "\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif 
 | 
			
		||||
							
								
								
									
										24
									
								
								src/includes/generator.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/includes/generator.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
 | 
			
		||||
#ifndef GENERATOR_H
 | 
			
		||||
#define GENERATOR_H
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include <random>
 | 
			
		||||
#include <string>
 | 
			
		||||
static std::mt19937 generator(INT32_MAX - 2020);
 | 
			
		||||
static std::uniform_int_distribution<int> gen_insert_int(1, INT32_MAX * 0.875);
 | 
			
		||||
static std::uniform_int_distribution<int> gen_noninsert_int(INT32_MAX * 0.875, INT32_MAX);
 | 
			
		||||
static std::uniform_int_distribution<int> gen_char(33, 123);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int gen_int();
 | 
			
		||||
int gen_unsuccesfull_int();
 | 
			
		||||
std::string gen_string();
 | 
			
		||||
std::string gen_unsuccesfull_string();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif /* GENERATOR_H */
 | 
			
		||||
							
								
								
									
										310
									
								
								src/includes/tests.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										310
									
								
								src/includes/tests.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,310 @@
 | 
			
		||||
 | 
			
		||||
#ifndef TESTS_H
 | 
			
		||||
#define TESTS_H
 | 
			
		||||
 | 
			
		||||
#include <vector>
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <iterator>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
 | 
			
		||||
#include "./generator.h"
 | 
			
		||||
 | 
			
		||||
using namespace std::chrono;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template <class T>
 | 
			
		||||
nanoseconds insert_int_test(int size, T testmap){
 | 
			
		||||
    // init hashmap, insert size - 10k items
 | 
			
		||||
    testmap.reserve(size);
 | 
			
		||||
    for (int i = 0; i < size - 10000; ++i){
 | 
			
		||||
        int a = gen_int();
 | 
			
		||||
        testmap.insert({a,a});
 | 
			
		||||
    }
 | 
			
		||||
    // generate 10k keys 
 | 
			
		||||
    std::vector<int> keys(10000);
 | 
			
		||||
    std::generate(keys.begin(), keys.end(), gen_int);
 | 
			
		||||
    
 | 
			
		||||
    // benchmark vector access time
 | 
			
		||||
    time_point<steady_clock> start_v_access = steady_clock::now();
 | 
			
		||||
    for (auto i : keys){
 | 
			
		||||
        if (i == -1) { // it'll never be, this is just anti optimisation
 | 
			
		||||
        std::cout << "Something is very wrong!";
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_v_access = steady_clock::now();
 | 
			
		||||
    auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
 | 
			
		||||
 | 
			
		||||
    // measure insert time
 | 
			
		||||
    time_point<steady_clock> start_insert_test = steady_clock::now();
 | 
			
		||||
    for (auto i : keys){
 | 
			
		||||
        testmap.insert({i,i});
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_insert_test = steady_clock::now();
 | 
			
		||||
 | 
			
		||||
    // time per insert 
 | 
			
		||||
    auto duration = duration_cast<nanoseconds>(end_insert_test - start_insert_test) - vector_time ;
 | 
			
		||||
    return duration / 10000;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template <class T>
 | 
			
		||||
nanoseconds insert_string_test(int size, T testmap){
 | 
			
		||||
    // init hashmap, insert size - 10k items
 | 
			
		||||
    testmap.reserve(size);
 | 
			
		||||
    for (int i = 0; i < size - 10000; ++i){
 | 
			
		||||
        std::string temp = gen_string();
 | 
			
		||||
        testmap.insert({temp,temp});
 | 
			
		||||
    }
 | 
			
		||||
    // generate 10k keys
 | 
			
		||||
    std::vector<std::string> keys(10000);
 | 
			
		||||
    std::generate(keys.begin(), keys.end(), gen_string);
 | 
			
		||||
    
 | 
			
		||||
    // benchmark vector access time
 | 
			
		||||
    time_point<steady_clock> start_v_access = steady_clock::now();
 | 
			
		||||
    for (auto i : keys){
 | 
			
		||||
        if (i == "a") { // it'll never be, this is just anti optimisation
 | 
			
		||||
        std::cout << "Something is very wrong!";
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_v_access = steady_clock::now();
 | 
			
		||||
    auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
 | 
			
		||||
 | 
			
		||||
    // measure insert time
 | 
			
		||||
    time_point<steady_clock> start_insert_test = steady_clock::now();
 | 
			
		||||
    for (auto i : keys){
 | 
			
		||||
        testmap.insert({i,i});
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_insert_test = steady_clock::now();
 | 
			
		||||
 | 
			
		||||
    // time per insert 
 | 
			
		||||
    auto duration = duration_cast<nanoseconds>(end_insert_test - start_insert_test) - vector_time ;
 | 
			
		||||
    return duration / 10000;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template<class T>
 | 
			
		||||
nanoseconds lookup_int_test(int size, T testmap){
 | 
			
		||||
    // reserve, get random 10k keys that are inserted, insert keys
 | 
			
		||||
    testmap.reserve(size);
 | 
			
		||||
    std::vector<int> sample_inserted;
 | 
			
		||||
    sample_inserted.reserve(10000);
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    {
 | 
			
		||||
        std::vector<int> keys(size);
 | 
			
		||||
        std::generate(keys.begin(), keys.end(), gen_int);
 | 
			
		||||
        std::sample(keys.begin(), keys.end(), std::back_inserter(sample_inserted) , 10000, generator);
 | 
			
		||||
        for (auto i : keys){
 | 
			
		||||
            testmap.insert({i, i});
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    // benchmark vector access time
 | 
			
		||||
    time_point<steady_clock> start_v_access = steady_clock::now();
 | 
			
		||||
    for (auto i : sample_inserted){
 | 
			
		||||
        if (i == -1) { // it'll never be, this is just anti optimisation
 | 
			
		||||
        std::cout << "Something is very wrong!";
 | 
			
		||||
                }
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_v_access = steady_clock::now();
 | 
			
		||||
    auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
 | 
			
		||||
 | 
			
		||||
    // benchmark access time of hashmap
 | 
			
		||||
    time_point<steady_clock> start_benchmark = steady_clock::now();
 | 
			
		||||
    for (auto i : sample_inserted){
 | 
			
		||||
        if (testmap[i] == -1){
 | 
			
		||||
            std::cout << "SOMETHUNG IS WRONG!";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_benchmark = steady_clock::now();
 | 
			
		||||
    auto duration = duration_cast<nanoseconds>(end_benchmark - start_benchmark) - vector_time;
 | 
			
		||||
    return duration / 10000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template<class T>
 | 
			
		||||
nanoseconds lookup_string_test(int size, T testmap){
 | 
			
		||||
    // reserve, get random 10k keys that are inserted, insert keys
 | 
			
		||||
    testmap.reserve(size);
 | 
			
		||||
    std::vector<std::string> sample_inserted(1000);
 | 
			
		||||
    // sample_inserted.reserve(10000);
 | 
			
		||||
    {
 | 
			
		||||
        std::vector<std::string> keys(size);
 | 
			
		||||
        std::generate(keys.begin(), keys.end(), gen_string);
 | 
			
		||||
        std::sample(keys.begin(), keys.end(), std::back_inserter(sample_inserted) , 10000, generator);
 | 
			
		||||
        for (auto i : keys){
 | 
			
		||||
            testmap.insert({i, i});
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    // benchmark vector access time
 | 
			
		||||
    time_point<steady_clock> start_v_access = steady_clock::now();
 | 
			
		||||
    for (auto i : sample_inserted){
 | 
			
		||||
        if (i == "a") { // it'll never be, this is just anti optimisation
 | 
			
		||||
        std::cout << "Something is very wrong!";
 | 
			
		||||
                }
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_v_access = steady_clock::now();
 | 
			
		||||
    auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
 | 
			
		||||
 | 
			
		||||
    // benchmark access time of hashmap
 | 
			
		||||
    time_point<steady_clock> start_benchmark = steady_clock::now();
 | 
			
		||||
 | 
			
		||||
    for (auto i : sample_inserted){
 | 
			
		||||
        if (testmap[i] == "a"){
 | 
			
		||||
            std::cout << "SOMETHUNG IS WRONG!";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_benchmark = steady_clock::now();
 | 
			
		||||
    auto duration = duration_cast<nanoseconds>(end_benchmark - start_benchmark) - vector_time;
 | 
			
		||||
    return duration / 10000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template<class T>
 | 
			
		||||
nanoseconds nolookup_int_test(int size, T testmap){
 | 
			
		||||
    // reserve, get random 10k keys that are inserted, insert keys
 | 
			
		||||
    testmap.reserve(size);
 | 
			
		||||
    std::vector<int>lookup_keys(10000);
 | 
			
		||||
    std::generate(lookup_keys.begin(), lookup_keys.end(), gen_unsuccesfull_int);
 | 
			
		||||
    for (int i = 0; i < size; ++i){
 | 
			
		||||
        int temp = gen_int();
 | 
			
		||||
        testmap.insert({temp, temp});
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // benchmark vector access time
 | 
			
		||||
    time_point<steady_clock> start_v_access = steady_clock::now();
 | 
			
		||||
    for (auto i : lookup_keys){
 | 
			
		||||
        if (i == -1) { // it'll never be, this is just anti optimisation
 | 
			
		||||
        std::cout << "Something is very wrong!";
 | 
			
		||||
                }
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_v_access = steady_clock::now();
 | 
			
		||||
    auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    // benchmark access time of hashmap
 | 
			
		||||
    time_point<steady_clock> start_benchmark = steady_clock::now();
 | 
			
		||||
    for (auto i : lookup_keys){
 | 
			
		||||
        if (testmap[i] == -1){
 | 
			
		||||
            std::cout << "SOMETHUNG IS WRONG!";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_benchmark = steady_clock::now();
 | 
			
		||||
    auto duration = duration_cast<nanoseconds>(end_benchmark - start_benchmark) - vector_time;
 | 
			
		||||
    return duration / 10000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template<class T>
 | 
			
		||||
nanoseconds nolookup_string_test(int size, T testmap){
 | 
			
		||||
    // reserve, get random 10k keys that are inserted, insert keys
 | 
			
		||||
    testmap.reserve(size);
 | 
			
		||||
    std::vector<std::string>lookup_keys(10000);
 | 
			
		||||
    std::generate(lookup_keys.begin(), lookup_keys.end(), gen_unsuccesfull_string);
 | 
			
		||||
    for (int i = 0; i < size; ++i){
 | 
			
		||||
        std::string temp = gen_string();
 | 
			
		||||
        testmap.insert({temp, temp});
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // benchmark vector access time
 | 
			
		||||
    time_point<steady_clock> start_v_access = steady_clock::now();
 | 
			
		||||
    for (auto i : lookup_keys){
 | 
			
		||||
        if (i == "a") { // it'll never be, this is just anti optimisation
 | 
			
		||||
        std::cout << "Something is very wrong!";
 | 
			
		||||
                }
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_v_access = steady_clock::now();
 | 
			
		||||
    auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    // benchmark access time of hashmap
 | 
			
		||||
    time_point<steady_clock> start_benchmark = steady_clock::now();
 | 
			
		||||
    for (auto i : lookup_keys){
 | 
			
		||||
        if (testmap[i] == "a"){
 | 
			
		||||
            std::cout << "SOMETHUNG IS WRONG!";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_benchmark = steady_clock::now();
 | 
			
		||||
    auto duration = duration_cast<nanoseconds>(end_benchmark - start_benchmark) - vector_time;
 | 
			
		||||
    return duration / 10000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template<class T>
 | 
			
		||||
nanoseconds delete_int_test(int size, T testmap){
 | 
			
		||||
    // reserve, get random 10k keys that are inserted, insert keys
 | 
			
		||||
    testmap.reserve(size);
 | 
			
		||||
    std::vector<int> sample_inserted;
 | 
			
		||||
    sample_inserted.reserve(10000);
 | 
			
		||||
    
 | 
			
		||||
    {
 | 
			
		||||
        std::vector<int> keys(size);
 | 
			
		||||
        std::generate(keys.begin(), keys.end(), gen_int);
 | 
			
		||||
        std::sample(keys.begin(), keys.end(), std::back_inserter(sample_inserted) , 10000, generator);
 | 
			
		||||
        for (auto i : keys){
 | 
			
		||||
            testmap.insert({i, i});
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    // benchmark vector access time
 | 
			
		||||
    time_point<steady_clock> start_v_access = steady_clock::now();
 | 
			
		||||
    for (auto i : sample_inserted){
 | 
			
		||||
        if (i == -1) { // it'll never be, this is just anti optimisation
 | 
			
		||||
        std::cout << "Something is very wrong!";
 | 
			
		||||
                }
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_v_access = steady_clock::now();
 | 
			
		||||
    auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
 | 
			
		||||
 | 
			
		||||
    // benchmark access time of hashmap
 | 
			
		||||
    time_point<steady_clock> start_benchmark = steady_clock::now();
 | 
			
		||||
    for (auto i : sample_inserted){
 | 
			
		||||
        testmap.erase(i);
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_benchmark = steady_clock::now();
 | 
			
		||||
    auto duration = duration_cast<nanoseconds>(end_benchmark - start_benchmark) - vector_time;
 | 
			
		||||
    return duration / 10000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template<class T>
 | 
			
		||||
nanoseconds delete_string_test(int size, T testmap){
 | 
			
		||||
    // reserve, get random 10k keys that are inserted, insert keys
 | 
			
		||||
    testmap.reserve(size);
 | 
			
		||||
    std::vector<std::string> sample_inserted;
 | 
			
		||||
    sample_inserted.reserve(10000);
 | 
			
		||||
    
 | 
			
		||||
    {
 | 
			
		||||
        std::vector<std::string> keys(size);
 | 
			
		||||
        std::generate(keys.begin(), keys.end(), gen_string);
 | 
			
		||||
        std::sample(keys.begin(), keys.end(), std::back_inserter(sample_inserted) , 10000, generator);
 | 
			
		||||
        for (auto i : keys){
 | 
			
		||||
            testmap.insert({i, i});
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    // benchmark vector access time
 | 
			
		||||
    time_point<steady_clock> start_v_access = steady_clock::now();
 | 
			
		||||
    for (auto i : sample_inserted){
 | 
			
		||||
        if (i == "a") { // it'll never be, this is just anti optimisation
 | 
			
		||||
        std::cout << "Something is very wrong!";
 | 
			
		||||
                }
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_v_access = steady_clock::now();
 | 
			
		||||
    auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
 | 
			
		||||
 | 
			
		||||
    // benchmark access time of hashmap
 | 
			
		||||
    time_point<steady_clock> start_benchmark = steady_clock::now();
 | 
			
		||||
    for (auto i : sample_inserted){
 | 
			
		||||
        testmap.erase(i);
 | 
			
		||||
    }
 | 
			
		||||
    time_point<steady_clock> end_benchmark = steady_clock::now();
 | 
			
		||||
    auto duration = duration_cast<nanoseconds>(end_benchmark - start_benchmark) - vector_time;
 | 
			
		||||
    return duration / 10000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* TESTS_H */
 | 
			
		||||
		Reference in New Issue
	
	Block a user