【发布时间】:2018-07-06 05:36:13
【问题描述】:
我正在尝试使用detector 我根据std::experiment::is_detected_v 编写的来检查类型是否可分配。但是std::declval<int>() = std::declval<int>() 无效,只有std::declval<int&>() = std::declval<int>() 有效。
为什么会这样?
【问题讨论】:
-
当你说
detector是指en.cppreference.com/w/cpp/experimental/is_detected? -
@John Zwinck 那是我根据它写的。
-
因为你需要
=左侧的左值。 -
@o11c 但似乎
int{} = int{}是有效的。 -
@JiaHaoXu 不,这对我来说失败了。请注意,类与基元不同。
标签: c++ assignment-operator built-in-types