I l@ve RuBoard Item 26. Minimizing Compile-time Dependencies桺art 1Difficulty: 4When we talk about dependencies, we usually think of run-time dependencies like class interactions. In this Item, we will focus instead on how to analyze and manage
Difficulty: 5Take a few minutes to consider some implications of the Interface Principle on the way we reason about program design. We'll revisit a classic design problem: "What's the best way to write operator<<()?"There are two main ways to
Transfer Synopsis Transfer caller to remote extension Description Transfer([Tech/]dest[|options]) Requests the remote caller be transferred to a given extension. If TECH (SIP, IAX2, LOCAL etc) is used, only an incoming call with the same channel
Difficulty: 9½When you call a function, which function do you call? The answer is determined by name lookup, but you're almost certain to find some of the details surprising.In the following code, which functions are called? Why? Analyze the
I l@ve RuBoard Item 30. The "Fast Pimpl" IdiomDifficulty: 6It's sometimes tempting to cut corners in the name of "reducing dependencies" or in the name of "efficiency," but it may not always be a good idea. Here's an excellent idiom to accomplish
We conclude this miniseries by considering some implications of the Interface Principle on name lookup. Can you spot the (quite subtle) problem lurking in the following code?What is name hiding? Show how it can affect the visibility of base class