std::vector and Noncopyable

When I inherited my class from boost::noncopyable, I immediately got a compilation error saying std::vector cannot access the copy constructor of my class. But I was using emplace_back, how could that happen? Because explicitly defining or deleting copy constructor will prevent the compiler from implicitly defining move constructor and move assignment operator. Thus, when the vector tries to change the location of the object when it has to grow, it will find it impossible.

References

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.