As you'll note, the first possible state (empty) tends to be chosen by the compiler as the most likely. That implies a 20 cycle branch misprediction cost for each of the valued or errored states. So they are equally costly, which is intentional.
Wait a minute. Are you saying that you consider the fact that valued and errored are equally slow a feature, instead of one of them being fast? How is that a good thing? Of course empty should be the least likely - it _is_ the least likely.
As I've mentioned several times already in other threads, that was a deliberate and intentional design choice for outcome/result. Predictable latency throughout. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/