小编sid*_*ker的帖子

在使用虚拟析构函数从基类派生的最终类中,派生类析构函数是否需要“virtual”关键字?它应该有“final”关键字吗?

我有一个带有析构函数和继承者Base的类:virtualfinal Derived

class Base {
public:
  virtual ~Base() { 
    // some impl
  }
};

class Derived final : public Base {
public:
  virtual ~Derived() override {
    // some other impl
  }
};
Run Code Online (Sandbox Code Playgroud)

我有以下问题:

  • 是否~Derived需要virtual说明符?
  • 我应该标记~Derived为吗final?

c++ c++17

4
推荐指数
1
解决办法
120
查看次数

将上标 2 (²) 符号转换为字符串

我正在尝试从一些 lisp 文件中获取一串代码,以创建 unix 文件名并将其显示在网页上:

\n
(let ((code "(defun \xc2\xb2 (x) (* x x))"))\n (second (read-from-string code)))\n
Run Code Online (Sandbox Code Playgroud)\n

其评估结果为|2|. 事实上,只需键入即可\'\xc2\xb2计算为|2|, 而不是|\xc2\xb2|。

\n

该code字符串是从文件中读取的。我正在使用 SBCL 2.2.10。

\n

使用此方案,字符串的"x\xc2\xb2"解析方式与字符串相同"x2":

\n
(read-from-string "x\xc2\xb2")\n(read-from-string "x2")\n
Run Code Online (Sandbox Code Playgroud)\n

如何在read-from-string不对字符串中的代码进行修改的情况下做出正确的更改?

\n

sbcl common-lisp unicode-normalization

4
推荐指数
1
解决办法
95
查看次数

HTML5 如何从文本区域中获取选定的文本

我能够通过记录 onselect 并每次存储开头和结尾来从文本区域中获取突出显示的文本。然后,当我单击按钮时,我自己构建子字符串。是否有更简单的方法来简单地查询选择?

我有点期待 html5 dom 中会有用于所有这些事情的方法,例如:

textarea.getSelectedStart() textarea.getSelectedEnd(); textArea.setSelected(开始,结束);

另外,是否有一种方法可以以编程方式取消选择文本区域中的文本?

我正在根据下面的第一个解决方案输入代码。这种方法可行,但有一个奇怪的问题:

<script language=javascript>
function replaceCLOZE(code, questionType) {
  var v = code.value;
  var s = code.selectionStart;
  var e = code.selectionEnd;
  var t = v.substr(s, e-s);
  var rep = "{:" + questionType + ":="+t+"}";
  code.value = v.substr(0,s) + rep + v.substr(e,v.length-e+1);
}

function shortAnswer(code) {
  replaceCLOZE(code, "SA");
}
function shortAnswerCaseSensitive(code) {
  replaceCLOZE(code, "SAC");
}
function multipleChoice(code) {
  replaceCLOZE(code, "MC");
}
Run Code Online (Sandbox Code Playgroud)

文本区域实际上具有属性 code.selectionStart 和 code.selectionEnd。但上面的代码现在可以工作,将屏幕上突出显示的文本设置为文本区域中的第一个单词。请注意,selectionStart 仍然是正确的,但 Firefox 中实际突出显示的内容是错误的。

在 Chrome 中它工作得很好。也许这只是 Firefox …

html javascript textarea onselect selection-api

3
推荐指数
1
解决办法
4798
查看次数

CouchDB中的_users数据库不允许使用HTTP OPTIONS方法

我正在尝试从连接到另一个域的CouchDB的应用程序中更改用户的密码.我的代码或多或少与CouchDB Docs中的示例相同,即获取文档,更改数据,然后发送带有更改的PUT请求.PUT请求发生问题 - 由于CORS,浏览器在发送PUT请求之前尝试执行OPTIONS请求,但OPTIONS请求返回405 Method Not Allowed.

有没有人知道如何解决这个问题?

这是请求标题,以防它有用:

OPTIONS /_users/org.couchdb.user:clinic_admin HTTP/1.1
Host: localhost:15984
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Access-Control-Request-Method: PUT
Origin: https://localhost:15000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36
Access-Control-Request-Headers: content-type, if-match
Accept: */*
Referer: https://localhost:15000/webapp/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,ja;q=0.6,sv;q=0.4,zh-CN;q=0.2
Run Code Online (Sandbox Code Playgroud)

couchdb cors preflight

3
推荐指数
2
解决办法
2623
查看次数

ServiceWorker:没有针对javascript触发请求的FetchEvent?

我正在使用Chrome stable 46.

我有一个非常基本的网站.一个button.onclick fetch('a')和一个<a>打开的标签b.这两个URL a和b不存在的,我打算抓住他们的服务人员和刚刚返回new Response().

如果我单击提取的按钮a,服务工作者不参与,我收到404错误.
但是,如果我点击进入的链接,b服务工作人员就会获取并返回响应.

问题:为什么服务工作者没有为fetch('a')请求获取任何FetchEvent ?

请参阅以下文件

HTML

<html>
  <body>
    <p><button onclick="fetch('a');">fetch a</button></p>
    <p><a href="b">go to b</a></p>
    <script src="js.js" defer></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

js.js

navigator.serviceWorker.register('sw.js');
Run Code Online (Sandbox Code Playgroud)

sw.js

self.onfetch = function(event) {
  var request = event.request;
  event.respondWith(
    caches.match(request).then(function(response) {
      return new Response('here is your onfetch response');
    })
  );
};
Run Code Online (Sandbox Code Playgroud)

javascript fetch asp.net-web-api service-worker fetch-api

3
推荐指数
1
解决办法
819
查看次数

无法将'Float'类型的值转换为预期参数'CGFloat'

我已经寻找了一段时间的答案了.在一般的编码方面,我是一个绝对的菜鸟,但我想我会尝试一下.我正在尝试使用3(三)个滑块(R,G,B)编写一些代码来更改视图的颜色.

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var colorView: UIView!


    @IBOutlet weak var redSlider: UISlider!
    @IBAction func redValueChanged(sender: UISlider) {
    var red = CGFloat(sender.value)
    displayColors()
    }

    @IBOutlet weak var greenSlider: UISlider!
    @IBAction func greenValueChanged(sender: UISlider) {
    var green = CGFloat(sender.value)
    displayColors()
    }

    @IBOutlet weak var blueSlider: UISlider!
    @IBAction func blueValueChanged(sender: UISlider) {
    var blue = CGFloat(sender.value)
    displayColors()
    }



    func displayColors(){
        let red = CGFloat(redSlider.value)
        let blue = CGFloat(blueSlider.value)
        let green = CGFloat(greenSlider.value)
        let color = UIColor(
            red: red, …
Run Code Online (Sandbox Code Playgroud)

ios swift

3
推荐指数
2
解决办法
1万
查看次数

有关保持 Service Worker 推送订阅同步的问题

我读过推送订阅可能会导致浏览器和推送服务之间不同步。

我见过两种补救措施,两者看起来都是非标准的:

  1. ServiceWorkerGlobalScope.onpushsubscriptionchange
  2. GCM 发送响应,在这里提到,在这里详细说明
    • 可以理解的不标准

我认为任何应用程序都应该处理这两点,在这些点上订阅可以被识别为不同步(以及任何/全部)。

问题:

  1. 一般来说,应用程序是否总是只有两个区域才能意识到订阅不同步的情况?(1.服务工作者事件2.推送服务响应)似乎合理,寻求确认。
  2. ServiceWorkerGlobalScope.onpushsubscriptionchange 事件(或类似事件)是否会成为权威标准?
  3. 代替服务工作线程事件标准,为什么不只保留预期的订阅端点(在客户端状态),并且每当您查询 PushManager 的订阅时,检查它是否不同步(与预期不同)?

firefox google-chrome service-worker web-push push-api

3
推荐指数
1
解决办法
608
查看次数

带有签名网址的 Google 存储

mutlipart/formdata ---boundaryString 如何使用谷歌存储的签名网址上传内容类型的文件?

我面临的问题是,当我们使用浏览器上传文件时,浏览器将内容类型放置在内容类型标头值的动态部分mutlipart/formdata ---boundaryString 中。boundaryString

现在,由于谷歌签名方法要求内容类型成为签名的一部分。生成签名 URL 变得不可能。

google-cloud-storage pre-signed-url

3
推荐指数
1
解决办法
2317
查看次数

如何设置 cookie 从服务器发送到不同端口上的客户端

我有一个后端服务器(由 Rails 提供支持),其 API 由在 Node 简单开发服务器上运行的 HTML5 前端使用。

两者都在同一台主机上:我的机器。

当我从前端登录到后端时,rails 向我发送了会话 cookie。我可以在响应头中看到它,问题是浏览器不保存它。

政策是正确的,如果我直接从 Rails 应用程序提供相同的前端,cookie 设置正确。

我能看到的唯一区别是,当前端在 Node 服务器上运行时,它在端口上运行,8080而 rails 在端口上运行3000。我知道 cookie 不应该是特定于端口的,所以我错过了这里发生的事情。

有什么想法吗?解决方案?

(我需要能够以这种方式保持设置,以便让前端从 Node 提供服务,后端在不同端口的导轨上提供服务)

cookies port ruby-on-rails webpack-dev-server

3
推荐指数
1
解决办法
2939
查看次数

链接样式表预加载与W3C验证

我正在努力满足2个跳棋:W3C验证器和谷歌页面洞察力

Google Page Insight建议我异步加载所有阻止CSS文件.好吧,我已经用预加载的方式重写了样式表文件包含,如下所示,并从头部延迟到正文的末尾:

 ...
    <link rel="preload" href="mystyles.css" media="all" as="style" 
                     onload="this.rel='stylesheet'"/>
</body>
Run Code Online (Sandbox Code Playgroud)

Google Page Insight迫使我从脑袋中取出它并将其放在身体末端.

好的,我可以对抗Google Page Insight.

但W3C Validator现在说我:

错误:链接元素不得显示为body元素的后代,除非link元素具有itemprop属性或具有rel属性,其值包含dns-prefetch,pingback,preconnect,prefetch,prerender或stylesheet

为什么"预加载"不被承认在rel属性中?我试图分配一个itemprop,但是不可能在同一个链接中有一个itemprop和一个rel.

css w3c-validation preload google-pagespeed

3
推荐指数
1
解决办法
1304
查看次数