I have a class called 'Container' in which three (known at compile time) objects of class DontCopyMe must be stored. Class DontCopyMe has non-default constructor and deleted copy constructors. How can I initialize Containter?
Sample code:
#include <string>
class DontCopyMe
{
public:
DontCopyMe(const unsigned int SomeInt, const std::string & SomeString): SomeInt(SomeInt), SomeString(SomeString)
{
}
DontCopyMe(const DontCopyMe &) = delete;
DontCopyMe & operator = (const DontCopyMe &) = delete;
DontCopyMe(DontCopyMe &&) = delete;
DontCopyMe & operator = (DontCopyMe &&) = delete;
private:
const unsigned int SomeInt;
const std::string SomeString;
};
class Container
{
public:
Container(): Array{{1, "A"}, {2, "B"}, {3, "C"}}
{
}
private:
DontCopyMe Array[3];
};
int main()
{
Container C;
return 0;
}
Of course I'm getting:
main.cpp: In constructor 'Container::Container()':
main.cpp:22:56: error: use of deleted function 'DontCopyMe::DontCopyMe(DontCopyMe&&)'
Container(): Array{{1, "A"}, {2, "B"}, {3, "C"}}