On 17/06/2019 3:11 AM, Robert M. Münch wrote:
How does the observerObject Template and function work? I'm struggling
because both use the same name and how is the template parameter R
deduced/where is it coming from? Looks like it's somehow implicitly
deduced.
class ObserverObject(R, E...){...}
template observerObject(E)
{
ObserverObject!(R, E) observerObject(R)(R range)
{
return new ObserverObject!(R, E)(range);
}
}
struct TestObserver {...}
auto observer = observerObject!int(TestObserver());
observerObject is an eponymous template.
What this means (in essence) is the symbol inside the template block ==
template block.
Yes R is being inferred by the argument.