我有一个网站,使用websocket-sharp进行客户端 - 服务器通信,并拥有Let's Encrypt颁发的证书.其他浏览器可以使用,但谷歌Chrome(在Linux上)会ERR_SSL_VERSION_INTERFERENCE在控制台中出错.禁用TLS 1.3可以避免用户绕过此错误.我使用的是最新的稳定版本.
这个答案表明问题出在Chrome检测到"有缺陷的中间件"时,但我不知道Chrome究竟在寻找什么.
我正在尝试创建一个 not-null unique_ptr。
template <typename T>
class unique_ref {
public:
template <class... Types>
unique_ref(Types&&... Args) { mPtr = std::make_unique<T, Types...>(std::forward<Types>(Args)...); }
T* release() && { return mPtr.release(); }
T* release() & = delete;
private:
std::unique_ptr<T> mPtr;
};
Run Code Online (Sandbox Code Playgroud)
release()我的目标是仅在临时情况下允许unique_ref。
问题是有人可以用来std::move()“绕过”这个:
unique_ref<int> p;
int* p2 = std::move(p).release();
Run Code Online (Sandbox Code Playgroud)
有没有办法防止它被move'd?