def metaclass(meta):
    """
    Parameterized class decorator applying metaclass to decorated class.

    The parameterized class decorator takes a metaclass and creates a class \
        decorator. The created class decorator takes a class and calls the
        metaclass to create a new class based on given class.

    :param meta: Metaclass.

    :return: Class decorator.
    """
    # Create class decorator
    def class_decorator(cls):
        """
        Class decorator.

        :param cls: Original class.

        :return: New class created by the metaclass.
        """
        # Get original class' attributes dict copy
        attrs_dict = cls.__dict__.copy()

        # Remove attribute `__dict__` from the attributes dict copy
        attrs_dict.pop('__dict__', None)

        # Remove attribute `__weakref__` from the attributes dict copy
        attrs_dict.pop('__weakref__', None)

        # Call metaclass to create new class based on given class
        return meta(cls.__name__, cls.__bases__, attrs_dict)

    # Return class decorator
    return class_decorator