workaround boost bug 10853
prefer std enable_if