typedef used for enable_if and lambdas