I sorted both, types and keywords, alphabetical and wrote my own 'canFind':

bool canFind(const size_t size)(ref const string[size] values, string value) pure nothrow {
        if (value[0] < 'm' || value[0] == '_') {
                foreach (string _val; values) {
                        if (_val == value) return true;
                }
        } else {
                foreach_reverse (string _val; values) {
                        if (_val == value) return true;
                }
        }
        
        return false;
}

That brings ~20 msecs, so I have ~280 mesecs instead of ~ 300. But it isn't perfect.

Reply via email to