Understanding C++11 compatibility issues in a codebase upgrade
This is an easy C++ question that tests your knowledge of standard-library evolution and the practical pitfalls of hand-rolled utility functions. It's the kind of problem that surfaces during real codebases migrations, where legacy implementations can create friction when you move to a newer language standard.
The question asks you to reason about what happens when a custom implementation coexists with a standard-library function across compiler versions. To answer it, you need to understand when make_unique was standardized, how name resolution works in C++, and what the compiler will actually select when both versions are available in your codebase.
- C++ standard library timeline and feature introduction
- Function overload resolution and namespace scoping
- Potential conflicts between custom and standard implementations
- Migration patterns for upgrading language standards