lilypond-auto
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Lilypond-auto] Issue 4377 in lilypond: Patch: Implement and use "derive


From: lilypond
Subject: [Lilypond-auto] Issue 4377 in lilypond: Patch: Implement and use "derived_unsmob"
Date: Thu, 07 May 2015 23:28:18 +0000

Status: Started
Owner: address@hidden
Labels: Type-Enhancement Patch-new

New issue 4377 by address@hidden: Patch: Implement and use "derived_unsmob"
https://code.google.com/p/lilypond/issues/detail?id=4377

Implement and use "derived_unsmob"

The name is open to discussion, and basically this is not more than a
proof-of-concept for making it easy to experiment with variants of
issue 4365: it is obviously easy to change the chosen name by changing
the script.

It is apparent that a lot of replacements occur in the definition of a
"native" unsmob function itself.  And not all such definitions are
used whenever possible.

Contains 2 commits (latter touches just lily/include/smobs.hh):


Run a script for using derived_unsmob where obvious

Script is:

matched="[^()]*"
for i in 1 2 3 4 5
do
    matched="\\(($matched)\\|[^()]\\)*"
done
sed -i 's/\<dynamic_cast\s*<\([_a-zA-Z]\+\)\s*\*> (\([_a-zA-Z]*\)::unsmob\s*(\('"$matched"'\))\s*)/derived_unsmob<\1> (\3)/g' $(git grep -l '\<dynamic_cast[^>]*> ([_a-zA-Z]*::unsmob\>')

The awkward bit at the start of the script is for matching matched
parentheses.  This replaces the construct

    dynamic_cast<T *>(xxx::unsmob (yyy))

with

    derived_unsmob<T> (yyy)



Define derived_unsmob<class T> function

This is a shortcut for dynamic_cast<T *>(T::unsmob (...)) in order to
provide an unsmob function for derived classes.

http://codereview.appspot.com/238020043

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings



reply via email to

[Prev in Thread] Current Thread [Next in Thread]