Need help on generics where clause

I have the following class:

/// Act as a reference container for value types.
public class ValueBox<ValueType: ??> {
    public var value: ValueType

    public init() {
        value = ValueType() // Compiler error
    }

    public init(_ value: ValueType) {
        self.value = value
    }
}

Is it possible to specify the generic type ValueType can be inited?

Is there any way to specify ValueType is a value type in the where clause? Apparently you don't need a box if the value is already a reference type.

Need help on generics where clause
 
 
Q