> On Jul 28, 2017, at 10:29 AM, Sam Weinig <wei...@apple.com> wrote:
> 
> For some generic programming, this form can be dramatically shorter:
> 
> e.g. 
> 
> template<typename KeyArg, typename MappedArg, typename HashArg, typename 
> KeyTraitsArg, typename MappedTraitsArg>
> template<typename K, typename V>
> ALWAYS_INLINE auto HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, 
> MappedTraitsArg>::inlineAdd(K&& key, V&& value) -> AddResult
> {
>     return m_impl.template add<HashMapTranslator<KeyValuePairTraits, 
> HashFunctions>>(std::forward<K>(key), std::forward<V>(value));
> }
> 
> vs.
> 
> template<typename KeyArg, typename MappedArg, typename HashArg, typename 
> KeyTraitsArg, typename MappedTraitsArg>
> template<typename K, typename V>
> ALWAYS_INLINE typename HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, 
> MappedTraitsArg>::AddResult HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, 
> MappedTraitsArg>::inlineAdd(K&& key, V&& value)
> {
>     return m_impl.template add<HashMapTranslator<KeyValuePairTraits, 
> HashFunctions>>(std::forward<K>(key), std::forward<V>(value));
> }

In this example, yes it is notably shorter.

But neither of these definitions are remotely readable without puttin' on your 
thinkin' cap.

> It is also the only format available for lambdas, so people are probably 
> getting used to it.

Lambdas don't have the problem of prepare-ChangeLog completely missing edits to 
a member function

> Not sure it’s worth it to avoid it.

My request was to be aware of this while prepare-ChangeLog was broken for this 
case.
Seems like that's almost fixed. :)

~Brady

> 
> - Sam
> 
>> On Jul 27, 2017, at 11:06 PM, Brady Eidson <beid...@apple.com 
>> <mailto:beid...@apple.com>> wrote:
>> 
>> I just noticed this tonight. When a change is made to one of these 
>> functions, prepare-ChangeLog doesn't log the functions that changed.
>> 
>> I have a question and a request.
>> 
>> Question:
>> 
>> The functions in question where I noticed this:
>> auto WebURLSchemeTask::didComplete(const ResourceError& error) -> 
>> ExceptionType
>> 
>> Would normally be written as:
>> WebURLSchemeTask::ExceptionType WebURLSchemeTask::didComplete(const 
>> ResourceError& error)
>> 
>> Is there some actual value to using this syntax other than… being 
>> syntactically different, and being just a little shorter?
>> 
>> Request:
>> 
>> Until we fix prepare-ChangeLog, and unless there is some great advantage to 
>> this syntax that I'm not aware of… it's hold off on using it more.
>> 
>> Thanks,
>> ~Brady
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev@lists.webkit.org <mailto:webkit-dev@lists.webkit.org>
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
> 

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to