code: def remove_const(type_):
      
  
      nake_type = remove_alias(type_)
      if not is_const(nake_type):
          return type_
      else:
          # Handling for const and volatile qualified types. There is a
          # difference in behavior between GCCXML and CastXML for cv-qual arrays.
          # GCCXML produces the following nesting of types:
          #       ->  volatile_t(const_t(array_t))
          # while CastXML produces the following nesting:
          #       ->  array_t(volatile_t(const_t))
          # For both cases, we must unwrap the types, remove const_t, and add
          # back the outer layers
          if isinstance(nake_type, cpptypes.array_t):
              is_v = is_volatile(nake_type)
              if is_v:
                  result_type = nake_type.base.base.base
              else:
                  result_type = nake_type.base.base
              if is_v:
                  result_type = cpptypes.volatile_t(result_type)
              return cpptypes.array_t(result_type, nake_type.size)
  
          elif isinstance(nake_type, cpptypes.volatile_t):
              return cpptypes.volatile_t(nake_type.base.base)
  
          return nake_type.base
docs: removes const from the type definition
  
      If type is not const type, it will be returned as is