コード例 #1
0
def create_cv_types(base):
    """implementation details"""
    return [
        base,
        cpptypes.const_t(base),
        cpptypes.volatile_t(base),
        cpptypes.volatile_t(cpptypes.const_t(base))
    ]
コード例 #2
0
def remove_pointer(type):
    """removes pointer from the type definition

    If type is not pointer type, it will be returned as is.
    """
    nake_type = remove_alias( type )
    if not is_pointer( nake_type ):
        return type
    elif isinstance( nake_type, cpptypes.volatile_t ) and isinstance( nake_type.base, cpptypes.pointer_t ):
        return cpptypes.volatile_t( nake_type.base.base )
    elif isinstance( nake_type, cpptypes.const_t ) and isinstance( nake_type.base, cpptypes.pointer_t ):
        return cpptypes.const_t( nake_type.base.base )
    elif isinstance( nake_type, cpptypes.volatile_t ) \
         and isinstance( nake_type.base, cpptypes.const_t ) \
         and isinstance( nake_type.base.base, cpptypes.pointer_t ):
        return cpptypes.volatile_t( cpptypes.const_t( nake_type.base.base.base ) )
    elif isinstance( nake_type.base, cpptypes.calldef_type_t ):
        return type
    else:
        return nake_type.base
コード例 #3
0
ファイル: type_traits.py プロジェクト: Noitidart/osxtypes
def remove_pointer(type):
    """removes pointer from the type definition

    If type is not pointer type, it will be returned as is.
    """
    nake_type = remove_alias( type )
    if not is_pointer( nake_type ):
        return type
    elif isinstance( nake_type, cpptypes.volatile_t ) and isinstance( nake_type.base, cpptypes.pointer_t ):
        return cpptypes.volatile_t( nake_type.base.base )
    elif isinstance( nake_type, cpptypes.const_t ) and isinstance( nake_type.base, cpptypes.pointer_t ):
        return cpptypes.const_t( nake_type.base.base )
    elif isinstance( nake_type, cpptypes.volatile_t ) \
         and isinstance( nake_type.base, cpptypes.const_t ) \
         and isinstance( nake_type.base.base, cpptypes.pointer_t ):
        return cpptypes.volatile_t( cpptypes.const_t( nake_type.base.base.base ) )
    elif isinstance( nake_type.base, cpptypes.calldef_type_t ):
        return type
    else:
        return nake_type.base
コード例 #4
0
def create_cv_types( base ):
    """implementation details"""
    return [ base
             , cpptypes.const_t( base )
             , cpptypes.volatile_t( base )
             , cpptypes.volatile_t( cpptypes.const_t( base ) ) ]