void write()

in cppwinrt/type_writers.h [467:523]


        void write(TypeSig::value_type const& type)
        {
            call(type,
                [&](ElementType type)
                {
                    if (type == ElementType::Boolean) { write("bool"); }
                    else if (type == ElementType::Char) { write("char16_t"); }
                    else if (type == ElementType::I1) { write("int8_t"); }
                    else if (type == ElementType::U1) { write("uint8_t"); }
                    else if (type == ElementType::I2) { write("int16_t"); }
                    else if (type == ElementType::U2) { write("uint16_t"); }
                    else if (type == ElementType::I4) { write("int32_t"); }
                    else if (type == ElementType::U4) { write("uint32_t"); }
                    else if (type == ElementType::I8) { write("int64_t"); }
                    else if (type == ElementType::U8) { write("uint64_t"); }
                    else if (type == ElementType::R4) { write("float"); }
                    else if (type == ElementType::R8) { write("double"); }
                    else if (type == ElementType::String)
                    {
                        if (abi_types)
                        {
                            write("void*");
                        }
                        else if (consume_types)
                        {
                            write("param::hstring");
                        }
                        else
                        {
                            write("hstring");
                        }
                    }
                    else if (type == ElementType::Object)
                    {
                        if (abi_types)
                        {
                            write("void*");
                        }
                        else
                        {
                            write("winrt::Windows::Foundation::IInspectable");
                        }
                    }
                    else
                    {
                        assert(false);
                    }
                },
                [&](GenericTypeIndex var)
                {
                    write(generic_param_stack.back()[var.index]);
                },
                    [&](auto&& type)
                {
                    write(type);
                });
        }