te doesn't seem to support move-only types, even though in the presence of move constructor and rvalue it will move the object and not use the copy constructor.
For example, given the following code that prints all calls to member functions of a tested class Circle:
main.cpp:33:19: error: invalid initialization of reference of type ‘const te::v1::poly<Drawable>&’ from expression of type ‘std::remove_reference<Circle&>::type {aka Circle}’
draw(std::move(circle));
~~~~~~~~~^~~~~~~~
main.cpp:28:6: note: in passing argument 1 of ‘void draw(const te::v1::poly<Drawable>&)’
void draw(const te::poly<Drawable>& drawable) { drawable.draw(cout); }
^~~~
te doesn't seem to support move-only types, even though in the presence of move constructor and rvalue it will move the object and not use the copy constructor.
For example, given the following code that prints all calls to member functions of a tested class Circle:
we will get this output:
But when we try to mark the copy constructor and copy assignment operator as deleted as below:
we will get a compilation error:
Are there any plans to support noncopyable types?
Environment OS: Ubuntu 17.10 x64 Compiler: GCC 7.2 x64