小编mol*_*olf的帖子

可以推断出左值引用非类型模板参数吗?

我有以下代码,我无法工作:

struct foo {};
foo foo1 = {};

template <foo& F>
class FooClass {};

template <foo& F>
void foobar(FooClass<F> arg) {
}

int main() {
    FooClass<foo1> f;
    foobar(f);
}
Run Code Online (Sandbox Code Playgroud)

错误是:

main.cpp:14:5:错误:没有匹配函数来调用'foobar'

注意:候选模板被忽略:替换失败:推导出的非类型模板参数与其对应的模板参数('foo'vs'foo&')的类型不同

是否可以推断左值参考模板参数?如果是这样,应该怎么做?

c++ templates lvalue language-lawyer c++11

11
推荐指数
1
解决办法
292
查看次数

在ruby 1.9.1中编译rails中的问题

我使用的是rails 2.3.3和ruby 1.9.1.

我试图渲染一个包含部分的视图.在部分i中输出以UTF8编码的模型的字段.这失败了

ActionView::TemplateError (incompatible character encodings: ASCII-8BIT and UTF-8) on line #248 of app/views/movie/show.html.erb:
245:    <!-- Coloumn right | start -->
246:    <div class="col_right">
247: 
248:        <%= render :partial => 'movie_stats' %>
249: 
250:        <!-- uploaders -->
251:        <div class="box_white">     
Run Code Online (Sandbox Code Playgroud)

另一方面,如果我直接在视图中使用该字段(当它不是部分时),我可以输出具有utf8内容的字段.

我怎样才能解决这个问题?我已经尝试设置默认编码,但似乎没有用.

ruby ruby-on-rails

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

反转字符串中的单词

有谁知道如何使用javascript,jquery对字符串中的单词进行排序.

例如我有这个:

var words = "1 3 2"
Run Code Online (Sandbox Code Playgroud)

现在我想把它改为:

var words = "2 3 1"
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript sorting string jquery

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

是否可以用Nokogiri解析样式表?

我花了两个小时谷歌搜索这个,我找不到任何好的答案,所以让我们看看人类是否可以击败谷歌的电脑.

我想在Ruby中解析一个样式表,以便我可以将这些样式应用于我的文档中的元素(以使样式内联).所以,我想采取类似的东西

<style>
.mystyle {
  color:white;
}
</style>
Run Code Online (Sandbox Code Playgroud)

并能够将其提取到某种Nokogiri对象中.

在引入nokogiri类"CSS ::分析器"(http://nokogiri.rubyforge.org/nokogiri/Nokogiri/CSS/Parser.html)肯定有前途的名字,但我找不到它是什么或如何任何文件它有效,所以我不知道它是否可以做我在这之后的事情.

我的最终目标是能够编写如下代码:

a_web_page = Nokogiri::HTML(html_page_as_string)
parsed_styles = Nokogiri::CSS.parse(html_page_as_string)
parsed_styles.each do |style| 
  existing_inlined_style = a_web_page.css(style.declaration) || ''
  a_web_page.css(style.declaration)['css'] = existing_inlined_style + style.definition
end
Run Code Online (Sandbox Code Playgroud)

这将从样式表中提取样式,并将它们全部作为内联样式添加到我的文档中.

css ruby nokogiri css-parsing

9
推荐指数
2
解决办法
4244
查看次数

使用ANTLR解析CSS - 边缘情况

我正在尝试使用ANTLR解析CSS,或者至少是基础知识.我的lexer规则遇到了一些问题.问题在于ID选择器和十六进制颜色值之间的模糊性.为清晰起见,使用简化的语法,请考虑以下输入:

#bbb {
  color: #fff;
}
Run Code Online (Sandbox Code Playgroud)

以及以下解析器规则:

ruleset : selector '{' property* '}';
selector: '#' ALPHANUM;
property: ALPHANUM ':' value ';' ;
value: COLOR;
Run Code Online (Sandbox Code Playgroud)

和这些词法分析器:

ALPHANUM : ('a'..'z' | '0'..'9')+;
COLOR : '#' ('0'..'9' | 'a'..'f')+;
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为#bbb被标记为COLOR标记,即使它应该是一个选择器.如果我将选择器更改为不以十六进制字符开头,则它可以正常工作.我不知道如何解决这个问题.有没有办法让ANTLR将特定令牌仅作为COLOR令牌处理,如果它在某个位置?比方说,如果它属于属性规则,我可以放心地认为它是一个颜色标记.如果不是,请将其视为选择器.

任何帮助,将不胜感激!


解决方案:原来我试图在语法中做太多,我应该在使用AST的代码中处理.CSS有太多不明确的令牌可靠地分成不同的令牌,所以我现在使用的方法基本上是对'#','.',':'和花括号等特殊字符进行标记,并在消费者代码.工作得更好,处理边缘情况更容易.

css antlr css-parsing

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

从内存中显示RGBA图像

我有一个包含RGBA编码图像的C#字节数组.在WPF中显示此图像的最佳方法是什么?

一种选择是从字节数组创建一个BitmapSource并将其附加到Image控件.但是,创建一个BitmapSource需要一个用于RGBA32的PixelFormat,这在Windows中似乎不可用.

byte[] buffer = new byte[] { 25, 166, 0, 255, 90, 0, 120, 255 };
BitmapSource.Create(2, 1, 96d, 96d, PixelFormats.Bgra32, null, buffer, 4 * 2);
Run Code Online (Sandbox Code Playgroud)

我绝对不想在我的字节数组中交换像素.

c# wpf image-processing

7
推荐指数
1
解决办法
2292
查看次数

如何在SQL Server 2012群集上创建最快的数据库,牺牲任何持久性

我有一个针对SQL Server 2012群集中的数据库运行的测试套件.我希望这个测试套件尽可能快地运行.我愿意为性能牺牲每一种耐用性和可用性保证.在每次测试运行期间都会重新创建数据库,因此它甚至不必在服务器重新启动后继续运行.

更改恢复模型ALTER DATABASE [dbname] SET RECOVERY SIMPLE没有明显的区别.

一个很好的选择似乎DELAYED_DURABILITY,但这是2014年的新功能,因此我无法使用.

如何在此群集上创建一个疯狂的快速数据库?我试图寻找内存数据库,但找不到任何选项.群集将不允许我在本地磁盘上创建数据库,坚持它必须位于群集磁盘上.

更新: 该应用程序使用高级SQL Server功能,所以我很可能坚持使用MS SQL Server.数据库本身非常小,因为它用于测试(8MB mdf,1MB ldf).群集节点是网络中速度最快的服务器,因此如果我可以将其中一个节点误用于内存数据库,那肯定是最快的.但是怎么样?

sql sql-server testing performance durability

7
推荐指数
1
解决办法
1071
查看次数

Rails 2.3.3 - 设置为生产模式

如何将应用程序设置为生产模式?

好吧,这一定是不费脑子的,但我要部署我的第一个Rails应用程序,我已经正确设置了一切:Ubuntu Hardy,Passenger,MySQL.但是,它仍然在开发模式下运行.我只能找到旧版本Rails的文档,并希望确保我做得对.

提前致谢.

mysql production ruby-on-rails passenger

6
推荐指数
2
解决办法
7674
查看次数

在 V8 中从 C++ 代码创建自定义错误类

我想在原生 NodeJS (0.11.5) 扩展中创建自定义异常。我正在尝试Error在 V8 (3.20.11) 中创建内置类的子类。

基本上,我正在寻找与以下 Javascript 代码等效的 C++:

function MyError(message) {
  Error.apply(this, arguments);
  this.message = message;
}
MyError.prototype = new Error;
MyError.prototype.name = MyError.name;

new MyError("message")
Run Code Online (Sandbox Code Playgroud)

我尝试挖掘 V8 源代码,发现以下辅助方法似乎可以完成我想要的部分功能:

Handle<Object> Factory::NewError(const char* constructor,
                                 Handle<String> message)
Run Code Online (Sandbox Code Playgroud)

不幸的是,它看起来像是一个私有 API,我对 V8 的了解不够,无法弄清楚如何自己构建类似的东西。能够编写一个我可以像创建内置Error实例一样使用的方法会很棒,例如:

ThrowException(v8::Exception::Error(v8::String::New(msg)))
// becomes...
ThrowException(MyError(v8::String::New(msg)))
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个尽可能接近内置Error类的子类的解决方案。大概应该满足以下几点:

var e = new MyError("message");
assert(e instanceof MyError);
assert(e instanceof Error);
assert(e.name === "MyError");
assert(e.message === "message");
Run Code Online (Sandbox Code Playgroud)

任何建议从哪里开始?

javascript c++ error-handling v8

5
推荐指数
1
解决办法
1241
查看次数

如何在转发流的同时从流中复制数据

我正在使用hyper 0.12 来构建代理服务。当从上游服务器接收响应身体我要转发它返回给客户端的ASAP,保存该内容在用于后续处理的缓冲器。

所以我需要一个函数:

  • 需要一个Stream(a hyper::Body,准确地说)
  • 返回一个Stream与输入流功能相同的
  • Future<Item = Vec<u8>, Error = ...>当输出流被完全消耗时,返回某种通过输入流的缓冲内容解决的问题

我一生都无法弄清楚如何做到这一点。

我想我正在寻找的功能看起来像这样:

type BufferFuture = Box<Future<Item = Vec<u8>, Error = ()>>;
pub fn copy_body(body: hyper::Body) -> (hyper::Body, BufferFuture) {
    let body2 = ... // ???
    let buffer = body.fold(Vec::<u8>::new(), |mut buf, chunk| {
        buf.extend_from_slice(&chunk);
        // ...somehow send this chunk to body2 also?
    });
    (body2, buffer);
}
Run Code Online (Sandbox Code Playgroud)

以下是我尝试过的,它一直工作到send_data()失败(显然)。

type BufferFuture = Box<Future<Item = Vec<u8>, Error …
Run Code Online (Sandbox Code Playgroud)

rust hyper

5
推荐指数
1
解决办法
673
查看次数