class CNonCopyable
{
private:
CNonCopyable(CNonCopyable const &);
public:
explicit CNonCopyable(int) { }
};
// CNonCopyable arrayA[] = { CNonCopyable(0) }; // ERROR: copy constructor is inaccessable
struct CIndirectlyNonCopyable
: public CNonCopyable
{
explicit CIndirectlyNonCopyable(int x) : CNonCopyable(x) { }
};
CIndirectlyNonCopyable arrayB[] = { CIndirectlyNonCopyable(0) }; // OK
int main(int argc, char * argv[])
{
return 0;
}