示例#1
0
        Variant Type::CreateDynamicVariadic(const ArgumentList &arguments) const
        {
            InvokableSignature signature;

            for (auto &argument : arguments)
                signature.emplace_back( argument.GetType( ) );

            auto &constructor = GetDynamicConstructor( signature );

            return constructor.Invoke( arguments );
        }
示例#2
0
        Variant Type::CreateDynamic(Args&&... args) const
        {
            static InvokableSignature signature;

            static bool initial = true;

            if (initial)
            {
                TypeUnpacker<Args...>::Apply( signature );

                initial = false;
            }

            auto &constructor = GetDynamicConstructor( signature );

            ArgumentList arguments { std::forward<Args>( args )... };

            return constructor.Invoke( arguments );
        }