小编muf*_*fel的帖子

C++使用Smart Pointers来改变指针值

考虑一个C库,它定义了用于创建,销毁和使用自定义结构的函数

struct Foo;
void foo_action(Foo*);
Foo* foo_create();
void foo_free(Foo*);
Run Code Online (Sandbox Code Playgroud)

目前,我在我的C++项目中使用了库,如下所示

Foo* myfoo = foo_create();
foo_action(myfoo);
foo_free(myfoo);
Run Code Online (Sandbox Code Playgroud)

我理解为什么智能指针很重要并希望迁移我的代码以使用它们.这就是代码现在的样子.

#include <memory>
#include <functional>
typedef std::unique_ptr<Foo, std::function<void(Foo*)>> FooPtr;
// ...
FooPtr myfoo2(foo_create(), foo_free);
foo_action(myfoo2.get());
Run Code Online (Sandbox Code Playgroud)

它似乎工作,但myfoo2.get()调用看起来很hacky.我按预期使用它吗?

该库的另一部分创建并使用某种列表结构.api看起来像

struct Bar;
Bar* bar_append(Bar*, int);
void bar_free_recursive(Bar*);
Run Code Online (Sandbox Code Playgroud)

并用作

// using NULL as current Bar* creates the initial structure
Bar* bar = bar_append(NULL, 1);
// each invocation leads to another 'head' structure
bar = bar_append(bar, 42);
bar = bar_append(bar, 123);
Run Code Online (Sandbox Code Playgroud)

当指针(指向的地址)随每次bar_append调用而改变时,我如何在这里引入智能指针,以便bar_free_recursive在释放指针实例时在当前指针值上调用?

c++ smart-pointers

23
推荐指数
2
解决办法
2425
查看次数

使用ngSanitize允许某些样式属性

ngSanitize在AngularJS应用程序中使用以删除不需要的或危险的部分.但是,内容是使用HTML Richtext编辑器生成的,并包含一些样式信息,这些信息将被删除(例如文本颜色).

我知道删除内联CSS样式很有用,但我更喜欢带有CSS属性但不会被删除的白名单.有没有办法在不授予所有CSS属性的情况下实现这一目标?

javascript css angularjs

17
推荐指数
2
解决办法
5986
查看次数

仅使用containerd(不带Docker)修剪容器镜像

如果我刚刚containerd安装在Linux系统上(即安装Docker),如何删除未使用的容器映像以节省磁盘空间?

Docker 有这个方便的docker system prune命令,但我找不到任何类似的命令ctr或第三方工具。

linux docker containerd

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

启动视频通话

我在我的Gingerbread Galaxy Tab P1000上运行最新版本的GTalk(使用市场上的Talk安装程序).

我现在想以编程方式发起视频通话,前提是相关联系人在线且可用.

由于我没有找到任何文档,我查看了相关的XML并找到了以下有趣的部分:

  <activity-alias android:icon="@drawable/ic_launcher_google_videochat" android:name="PublicCallIntentDispatcher" android:targetActivity="PublicIntentDispatcher">
            <intent-filter>
                <action android:name="android.intent.action.SENDTO" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.item/video-chat-address" android:scheme="xmpp" />
            </intent-filter>
        </activity-alias>
Run Code Online (Sandbox Code Playgroud)

由于这是一个"发送"行动,我不需要特别许可,是吗?我的问题是,我不知道如何获得vnd.android.cursor.item/video-chat-address类型的项目.你有什么想法或暗示我会尝试什么吗?

提前致谢!

android google-talk

15
推荐指数
1
解决办法
3060
查看次数

嵌套位置块中的指令继承

以下两个nginx服务器块在语义上是相同的,还是有什么区别?第一个示例中的JSON特定配置是否继承了"/"位置的设置?它是在第二个例子中吗?

server {
  location / {
     # ...
     location ~* \.json$ {
          # json-specific settings
     }
  }
}

server {
  location / {
     # ...
  }
  location ~*  \.json$ {
    # json-specific settings
  }
}
Run Code Online (Sandbox Code Playgroud)

nginx

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

C函数指针:我可以跳转到堆内存汇编程序代码吗?

是否有可能创建一个动态的功能,通过动态分配内存,写一些汇编操作码给它(像的0x90为0xC2NOP RET),创建一个函数指针,它指向的是动态内存,并从C程序中像一个普通的功能执行它?

Target应该是常规的x86 Linux系统.

c function-pointers

14
推荐指数
2
解决办法
1785
查看次数

Node.js vm:如何取消Script.runInNewContext()?

我想使用该vm模块作为运行外部代码的安全方式.它工作得很好,但还有一个问题:

var UNKNOWN_CODE = "while(true){}";

var vm = require("vm");

var obj = {};
var ctx = vm.createContext(obj);

var script = vm.createScript(UNKNOWN_CODE);

script.runInNewContext(ctx);

console.log("finished"); //never executed
Run Code Online (Sandbox Code Playgroud)

有没有办法取消执行(例如,如果它持续超过5秒)?

提前致谢!

v8 node.js

13
推荐指数
3
解决办法
5811
查看次数

如何共享和维护多个Fiddler脚本?

我有许多自定义和独立的FiddlerScript扩展,我想维护和与大学分享.

目前(这是我所知道的唯一方法)所有这些脚本部分都位于%USERPROFILE%\ Documents\Fiddler2\Scripts\CustomRules.js文件中,我不知道如何为每个功能创建一个脚本文件.此外,大多数扩展都分布在脚本文件中,因为它们需要不同事件处理程序中的代码(例如OnBeforeRequest),并定义可复制的设置,如复选框.这使得识别属于单个扩展的所有部分变得非常困难.

虽然我可以复制整个CustomRules.js文件,但是每次文档更改时,文件的所有收件人都会重新包含所有自定义添加内容.

有没有办法创建一个单独的脚本文件或将扩展封装在封闭的块中(即附加到函数OnBeforeRequest外部的事件static function OnBeforeRequest(oSession: Session))?

该解决方案应该与vanid Fiddler一起使用,而不需要对Fiddler本身进行任何修改.(重新)创建所有必需的扩展,因为.NET扩展对我来说也不是一个可行的解决方案.

fiddler

9
推荐指数
1
解决办法
193
查看次数

检测JS中CSSStyleDeclaration对象的变化

有什么方法可以在CSSStyleDeclaration对象发生更改时得到通知,就像DOM更改一样,可以使用像DomAttrModified这样的事件进行跟踪?

因此,如果有一些JS代码,例如

document.styleSheets[0].rules[0].style.backgroundImage = "url(myimage.png)";
Run Code Online (Sandbox Code Playgroud)

有没有办法在不改变上面的代码片段的情况下在JS处理程序中获得有关该更改的通知?

提前致谢!

html javascript css dom

8
推荐指数
1
解决办法
605
查看次数

我应该为静态SPA内联所有CSS和JS吗?

我正在创建一个单页面应用程序,它只包含静态HTML,JS和CSS.我需要支持IE9 +,现代桌面浏览器和iOS 6+.

Web是使用grunt构建的,我正在考虑将所有JS和CSS内联到HTML文件中,这样可以简化处理.

由于没有服务器生成的内容,并且.html页面也被缓存,在内联所有JS和CSS时,您是否看到任何陷阱或缺点?据我所知,它甚至可以提高性能,因为浏览器的往返次数较少,但也许有一些很好的理由不能内联那些(非常大的)文件?

你有这方面的经验吗?

[编辑] 似乎很不清楚.我希望手动把所有JS和CSS,我有工作在生成的HTML文件.我有一个干净的项目结构,并考虑让grunt生成内联版本作为发布输出.我不会使用内联版本,既不用于开发也不用于调试.我的问题只是关于技术部分:是否会对浏览器产生任何负面影响(缓存除外,整个html被缓存,我可以将它作为一个整体使其无效)?为什么自动构建过程的内联仍然被认为是不好的做法(缓存主题除外)?

html javascript css bundling-and-minification gruntjs

8
推荐指数
1
解决办法
1564
查看次数