mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 20:53:02 +00:00
[UCRT] Add using declatarions for template base-classes (GCC compatibility)
This commit is contained in:
parent
5ba105e9b5
commit
c15b618a17
2 changed files with 71 additions and 0 deletions
|
@ -42,6 +42,7 @@
|
||||||
: __crt_simd_pack_traits<Isa>
|
: __crt_simd_pack_traits<Isa>
|
||||||
{
|
{
|
||||||
using element_type = Element;
|
using element_type = Element;
|
||||||
|
using __crt_simd_pack_traits<Isa>::pack_size;
|
||||||
|
|
||||||
enum : size_t
|
enum : size_t
|
||||||
{
|
{
|
||||||
|
|
|
@ -111,6 +111,10 @@ template <typename Character>
|
||||||
class console_output_adapter
|
class console_output_adapter
|
||||||
: public output_adapter_common<Character, console_output_adapter<Character>>
|
: 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:
|
public:
|
||||||
typedef __acrt_stdio_char_traits<Character> char_traits;
|
typedef __acrt_stdio_char_traits<Character> char_traits;
|
||||||
|
|
||||||
|
@ -141,6 +145,10 @@ template <typename Character>
|
||||||
class stream_output_adapter
|
class stream_output_adapter
|
||||||
: public output_adapter_common<Character, stream_output_adapter<Character>>
|
: 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:
|
public:
|
||||||
typedef __acrt_stdio_char_traits<Character> char_traits;
|
typedef __acrt_stdio_char_traits<Character> char_traits;
|
||||||
|
|
||||||
|
@ -969,6 +977,11 @@ class output_adapter_data
|
||||||
: protected common_data<Character>
|
: protected common_data<Character>
|
||||||
{
|
{
|
||||||
protected:
|
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(
|
output_adapter_data(
|
||||||
OutputAdapter const& output_adapter,
|
OutputAdapter const& output_adapter,
|
||||||
uint64_t const options,
|
uint64_t const options,
|
||||||
|
@ -1003,6 +1016,12 @@ class standard_base
|
||||||
: protected output_adapter_data<Character, OutputAdapter>
|
: protected output_adapter_data<Character, OutputAdapter>
|
||||||
{
|
{
|
||||||
protected:
|
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>
|
template <typename... Ts>
|
||||||
standard_base(Ts&&... arguments) throw()
|
standard_base(Ts&&... arguments) throw()
|
||||||
: output_adapter_data<Character, OutputAdapter>{arguments... },
|
: output_adapter_data<Character, OutputAdapter>{arguments... },
|
||||||
|
@ -1106,6 +1125,11 @@ class format_validation_base
|
||||||
: protected standard_base<Character, OutputAdapter>
|
: protected standard_base<Character, OutputAdapter>
|
||||||
{
|
{
|
||||||
protected:
|
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>
|
template <typename... Ts>
|
||||||
format_validation_base(Ts&&... arguments) throw()
|
format_validation_base(Ts&&... arguments) throw()
|
||||||
: standard_base<Character, OutputAdapter>{arguments...}
|
: standard_base<Character, OutputAdapter>{arguments...}
|
||||||
|
@ -1150,6 +1174,19 @@ class positional_parameter_base
|
||||||
: protected format_validation_base<Character, OutputAdapter>
|
: protected format_validation_base<Character, OutputAdapter>
|
||||||
{
|
{
|
||||||
protected:
|
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 positional_parameter_base self_type;
|
||||||
typedef format_validation_base base_type;
|
typedef format_validation_base base_type;
|
||||||
|
@ -1641,6 +1678,39 @@ class output_processor
|
||||||
: private ProcessorBase
|
: private ProcessorBase
|
||||||
{
|
{
|
||||||
public:
|
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;
|
typedef __acrt_stdio_char_traits<Character> char_traits;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue