https://git.reactos.org/?p=reactos.git;a=commitdiff;h=c15b618a17c73384d897f4...
commit c15b618a17c73384d897f4d466b2c6a4d3d19256 Author: Timo Kreuzer timo.kreuzer@reactos.org AuthorDate: Mon Oct 14 00:30:51 2024 +0300 Commit: Timo Kreuzer timo.kreuzer@reactos.org CommitDate: Thu Jan 16 14:18:53 2025 +0200
[UCRT] Add using declatarions for template base-classes (GCC compatibility) --- sdk/lib/ucrt/inc/corecrt_internal_simd.h | 1 + sdk/lib/ucrt/inc/corecrt_internal_stdio_output.h | 70 ++++++++++++++++++++++++ 2 files changed, 71 insertions(+)
diff --git a/sdk/lib/ucrt/inc/corecrt_internal_simd.h b/sdk/lib/ucrt/inc/corecrt_internal_simd.h index 6759c756900..5770418e034 100644 --- a/sdk/lib/ucrt/inc/corecrt_internal_simd.h +++ b/sdk/lib/ucrt/inc/corecrt_internal_simd.h @@ -42,6 +42,7 @@ : __crt_simd_pack_traits<Isa> { using element_type = Element; + using __crt_simd_pack_traits<Isa>::pack_size;
enum : size_t { diff --git a/sdk/lib/ucrt/inc/corecrt_internal_stdio_output.h b/sdk/lib/ucrt/inc/corecrt_internal_stdio_output.h index e3ebfe4fd6f..cde4af0e080 100644 --- a/sdk/lib/ucrt/inc/corecrt_internal_stdio_output.h +++ b/sdk/lib/ucrt/inc/corecrt_internal_stdio_output.h @@ -111,6 +111,10 @@ template <typename Character> class console_output_adapter : public output_adapter_common<Character, console_output_adapter<Character>> { +#ifndef _MSC_VER // For retarded compilers! + using oac_base = output_adapter_common<Character, console_output_adapter<Character>>; + using oac_base::write_string_impl; +#endif public: typedef __acrt_stdio_char_traits<Character> char_traits;
@@ -141,6 +145,10 @@ template <typename Character> class stream_output_adapter : public output_adapter_common<Character, stream_output_adapter<Character>> { +#ifndef _MSC_VER // For retarded compilers! + using oac_base = output_adapter_common<Character, stream_output_adapter<Character>>; + using oac_base::write_string_impl; +#endif public: typedef __acrt_stdio_char_traits<Character> char_traits;
@@ -969,6 +977,11 @@ class output_adapter_data : protected common_data<Character> { protected: +#ifndef _MSC_VER // For retarded compilers! + using common_data<Character>::_options; + using common_data<Character>::_format_it; + using common_data<Character>::_valist_it; +#endif output_adapter_data( OutputAdapter const& output_adapter, uint64_t const options, @@ -1003,6 +1016,12 @@ class standard_base : protected output_adapter_data<Character, OutputAdapter> { protected: +#ifndef _MSC_VER // For retarded compilers! + using common_data_base = typename output_adapter_data<Character, OutputAdapter>::template common_data<Character>; + using common_data_base::_valist_it; + using common_data_base::_field_width; + using common_data_base::_precision; +#endif template <typename... Ts> standard_base(Ts&&... arguments) throw() : output_adapter_data<Character, OutputAdapter>{arguments... }, @@ -1106,6 +1125,11 @@ class format_validation_base : protected standard_base<Character, OutputAdapter> { protected: +#ifndef _MSC_VER // For retarded compilers! + using common_data_base = typename standard_base<Character, OutputAdapter>::template output_adapter_data<Character, OutputAdapter>::template common_data<Character>; + using common_data_base::_ptd; + using common_data_base::_state; +#endif template <typename... Ts> format_validation_base(Ts&&... arguments) throw() : standard_base<Character, OutputAdapter>{arguments...} @@ -1150,6 +1174,19 @@ class positional_parameter_base : protected format_validation_base<Character, OutputAdapter> { protected: +#if defined(__GNUC__) || defined(__clang__) // For retarded compilers! + using common_data_base = typename format_validation_base<Character, OutputAdapter>::template standard_base<Character, OutputAdapter>::template output_adapter_data<Character, OutputAdapter>::template common_data<Character>; + using output_adapter_data = typename format_validation_base<Character, OutputAdapter>::template standard_base<Character, OutputAdapter>::template output_adapter_data<Character, OutputAdapter>; + using common_data_base::_format_it; + using common_data_base::_ptd; + using common_data_base::_field_width; + using common_data_base::_precision; + using common_data_base::_format_char; + using common_data_base::_valist_it; + using common_data_base::_length; + using common_data_base::_state; + using common_data_base::_options; +#endif
typedef positional_parameter_base self_type; typedef format_validation_base base_type; @@ -1641,6 +1678,39 @@ class output_processor : private ProcessorBase { public: +#ifndef _MSC_VER // For retarded compilers! + using ProcessorBase::advance_to_next_pass; + using ProcessorBase::validate_and_update_state_at_beginning_of_format_character; + using ProcessorBase::validate_and_update_state_at_end_of_format_string; + using ProcessorBase::should_skip_normal_state_processing; + using ProcessorBase::update_field_width; + using ProcessorBase::should_format; + using ProcessorBase::update_precision; + using ProcessorBase::should_skip_type_state_output; + using ProcessorBase::validate_state_for_type_case_a; + using ProcessorBase::tchar_string; + using ProcessorBase::state_transition_table; + using ProcessorBase::state_count; + using oad_base = typename ProcessorBase::output_adapter_data; + using oad_base::_output_adapter; + using common_data_base = typename ProcessorBase::common_data_base; + using common_data_base::_string_length; + using common_data_base::_ptd; + using common_data_base::_format_it; + using common_data_base::_state; + using common_data_base::_format_char; + using common_data_base::_characters_written; + using common_data_base::_string_is_wide; + using common_data_base::_field_width; + using common_data_base::_suppress_output; + using common_data_base::_flags; + using common_data_base::_precision; + using common_data_base::_length; + using common_data_base::_options; + using common_data_base::_buffer; + using common_data_base::_narrow_string; + using common_data_base::_wide_string; +#endif
typedef __acrt_stdio_char_traits<Character> char_traits;