use SFINAE to disable logical constructor in certain cases to avoid bad interaction with proxies