小编Dmi*_*try的帖子

为什么派生类在基类不可移动时可以构造?

请考虑以下示例:

#include <iostream>
#include <string>
#include <utility>

template <typename Base> struct Foo : public Base {
    using Base::Base;
};

struct Bar {
    Bar(const Bar&) { }
    Bar(Bar&&) = delete;
};

int main() {
    std::cout << std::is_move_constructible<Bar>::value << std::endl; // NO
    std::cout << std::is_move_constructible<Foo<Bar>>::value << std::endl; // YES. Why?!
}
Run Code Online (Sandbox Code Playgroud)

尽管基类是不可移动构造的,为什么编译器会生成移动构造函数?

这是标准还是编译器错误?是否有可能"完美地传播"将构造从基础移动到派生类?

c++ language-lawyer move-constructor move-semantics c++11

57
推荐指数
2
解决办法
2049
查看次数

NSView - userInteractionEnabled 等效项

是否有可靠/官方的方法来完全禁用用户与视图的交互?类似的SO问题仅建议拦截鼠标事件,但我正在寻找一个完整的解决方案,它将禁用视图及其后代中的所有交互,包括:

  • 鼠标事件
  • 触控板
  • 键盘焦点/事件
  • 加速键
  • 语音输入
  • 精神控制技术
  • 用户从 UI 产生控制事件的任何其他官方方式

一旦交互被禁用,视图(及其后代)也应该立即失去键盘/鼠标焦点。

这应该与transitionFromViewController:toViewController:options:completionHandler:没有NSViewControllerTransitionAllowUserInteraction标志的情况类似,但我找不到在动画之外做到这一点的方法。

更新: 描述我正在寻找的内容的另一种方法是:视图必须完全像隐藏的一样,但仍然绘制在屏幕上。

macos cocoa appkit

6
推荐指数
0
解决办法
607
查看次数