I want to do the opposite of making instances of a class noncopyable, that is, make sure that instances of a particular class can be passed only as a c
noncopyable
That's impossible. Any named variable can bind to a reference variable of the appropriate type. That's just how the language works.
In particular, you could never have a copy constructor with your restriction, so you couldn't actually pass the object by value!