On Wed, 29 May 2019 at 16:50, Johan Alfredsson wrote: > > Hi, > > I was under the impression that you could use std::conjunction to > avoid instantiating templates for arguments following an argument the > ::value of which would evaluate to something equivalent to 'false'. That's correct. > The code below seems to be an example of when this is not the case. > I'm I misunderstanding something or is there a bug somewhere in gcc or > libstdc++? I think this is a bug in your code. The is_barable_v<T> variable template requires the instantiation of is_barable<T>::value immediately, even if the conjunction instantiation doesn't need it.