Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7764939
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 1, 20262026-06-01T15:03:07+00:00 2026-06-01T15:03:07+00:00

In an programming interview I had yesterday, one of the programs I had to

  • 0

In an programming interview I had yesterday, one of the programs I had to write ended up having something like this:

struct Blob
{
    // basic field containing image blob statistics.
};

std::vector<Blob> find_blobs (const Image& ...)
{
    std::vector<Blob> blobs;
    // ...
    return blobs;
}

I’m familiar with return value optimization (RVO), so I just mentioned that returning the vector would not cause a copy on popular compilers (there is a single return statement as the last line, and no control paths can return another object in the code I wrote).

However, the interviewer told me that since Blob may be a complex user defined type (UDT), the compiler may not be able to perform RVO. He further added that returning a std::vector<Blob*> would increase the chances that the compiler would perform the copy elision.

To the best of my understanding, the capacity the compiler has of performing RVO are completely irrelevant of the type of object being returned, save for non-copyable objects, for which the compiler will (should?) reject the code even if the resulting code could compile without ever invoking the copy constructor.

So, was the interviewer right? Can a complex return type prevent the compiler from applying RVO?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-01T15:03:08+00:00Added an answer on June 1, 2026 at 3:03 pm

    No, the types used should not affect the optimization.

    The only reason I see to use pointers would be that they are cheaper to copy if the compiler fails the RVO. Not likely with the most popular compilers.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

One of those classic programming interview questions... You are given two marbles, and told
This is an interview question that I am using as a programming exercise. Input:
I tried to solve one programming problem(neither my homework nor any of my interview/test,
I saw this question in a programming interview blog. If pairwise sums of n
I'm studying for a programming interview in Java which may involve database access. Is
Programming in vim I often go search for something, yank it, then go back
Programming languages had several (r)evolutionary steps in their history. Some people argue that model-driven
Programming is learned by writing programs. But code reading is said to be another
I had an interesting job interview experience a while back. The question started really
Interview Question I have been asked this question in an interview, and the answer

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.