Пример #1
0
def _template_template_arg_decl(name: str, *args: ir.TemplateArgType):
    return ir.TemplateArgDecl(expr_type=ir.TemplateType(args),
                              name=name,
                              is_variadic=False)
Пример #2
0
def _variadic_int64_arg_decl(name: str):
    return ir.TemplateArgDecl(expr_type=ir.Int64Type(),
                              name=name,
                              is_variadic=True)
Пример #3
0
def _variadic_bool_arg_decl(name: str):
    return ir.TemplateArgDecl(expr_type=ir.BoolType(),
                              name=name,
                              is_variadic=True)
Пример #4
0
def _type_arg_decl(name: str):
    return ir.TemplateArgDecl(expr_type=ir.TypeType(),
                              name=name,
                              is_variadic=False)
Пример #5
0
 def transform_template_arg_decl(self, arg_decl: ir.TemplateArgDecl):
     return ir.TemplateArgDecl(expr_type=arg_decl.expr_type,
                               name=self._transform_name(arg_decl.name),
                               is_variadic=arg_decl.is_variadic)
    VariadicVarReplacementNotPossibleException, replace_var_with_expr_in_expr
from _py2tmp.ir0_optimization._unify import unify_template_instantiation_with_definition

_select1st_type_and_name = [
    (ir.BoolType(), 'Bool'),
    (ir.Int64Type(), 'Int64'),
    (ir.TypeType(), 'Type'),
]

TEMPLATE_DEFNS_DEFINED_AS_IR0 = [
    ir.TemplateDefn(
        name='std::is_same',
        description='',
        result_element_names=['value'],
        args=[
            ir.TemplateArgDecl(
                name='T', expr_type=ir.TypeType(), is_variadic=False),
            ir.TemplateArgDecl(
                name='U', expr_type=ir.TypeType(), is_variadic=False)
        ],
        main_definition=ir.TemplateSpecialization(
            args=[
                ir.TemplateArgDecl(
                    name='T', expr_type=ir.TypeType(), is_variadic=False),
                ir.TemplateArgDecl(
                    name='U', expr_type=ir.TypeType(), is_variadic=False)
            ],
            patterns=None,
            body=[ir.ConstantDef(name='value', expr=ir.Literal(False))],
            is_metafunction=True),
        specializations=[
            ir.TemplateSpecialization(