为什么C++ 11使" deleted"函数参与重载决策?
为什么这有用?或者换句话说,为什么它们被隐藏而不是被完全删除?
MSVC和clang/gcc不同意是否可以在三元运算符中使用两个不同的积分常数(因此它们是否具有a common_type):
#include <utility>
int main()
{
return false
? std::integral_constant<int, 1>()
: std::integral_constant<int, 2>();
}
Run Code Online (Sandbox Code Playgroud)
上面的代码段在clang和gcc中编译得很好,但在MSVC中却没有.根据标准,正确的行为是什么?如果它是clang/gcc行为,那么用于推断这两种不同类型的常见类型的转换序列是什么?