Question: Consider the following code in C++: Suppose that string_map::operator[] contains the only call to complex_ lookup anywhere in the program. Explain why it would be

Consider the following code in C++:
class string_map { string cached_key; string cached_val; const string complex_lookup(const string key); // body specified elsewhere public: const string operator [] (const string key) { if (key == cached_key) return cached_val; string rtn_val = complex_lookup (key); cached_key key; cached_val = rtn_val; return rtn_val; };Suppose that string_map::operator[] contains the only call to complex_ lookup anywhere in the program. Explain why it would be unwise for the programmer to expand that call textually in-line and eliminate the separate function.

class string_map { string cached_key; string cached_val; const string complex_lookup(const string key); // body specified elsewhere public: const string operator [] (const string key) { if (key == cached_key) return cached_val; string rtn_val = complex_lookup (key); cached_key key; cached_val = rtn_val; return rtn_val; };

Step by Step Solution

3.50 Rating (167 Votes )

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock

Because this would be likely to inhibit automatic inlin... View full answer

blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Language Pragmatics Questions!