#include <type_traits>
class Test
{
public:
Test(const Test &) = delete;
Test &operator=(const Test &) = delete;
};
void fn(Test &a, const Test &b) { a = b; }
static_assert(!std::is_copy_assignable<Test>::value, "Test shouldn't be assignable");
Compiling this under MSVC 2013 Update 3 unexpectedly fails the static_assert
, and the function fn
fails to compile (as expected.) This is contradictory, right?
Am I misusing is_copy_assignable
? Is there another way to test for this condition?