小编phs*_*phs的帖子

跨编译单元的相同功能模板实例的地址

为什么这样做?

我看到类似的SO问题说它确实如此,但有人可以更详细地解释它吗?特别是,这种行为是否受到标准的保护?

IH

#ifndef I_H_
#define I_H_

typedef void (*FuncPtr)();

template<typename T>
void FuncTemplate() {}

class C {};

#endif
Run Code Online (Sandbox Code Playgroud)

a.cc

#include "i.h"

FuncPtr a() {
  return &FuncTemplate<C>;
}
Run Code Online (Sandbox Code Playgroud)

b.cc

#include "i.h"

FuncPtr b() {
  return &FuncTemplate<C>;
}
Run Code Online (Sandbox Code Playgroud)

m.cc

#include <iostream>

#include "i.h"

FuncPtr a();
FuncPtr b();

int main() {
  std::cout << (a() == b() ? "equal" : "not equal") << std::endl;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后

$ g++ -c -o a.o a.cc
$ g++ -c -o b.o b.cc
$ g++ -c …
Run Code Online (Sandbox Code Playgroud)

c++ linker templates function c++-address

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

实时跟踪每分钟/小时/天的前100个推特词

我最近遇到了这个采访问题:

Given a continuous twitter feed, design an algorithm to return the 100 most
frequent words used at this minute, this hour and this day.
Run Code Online (Sandbox Code Playgroud)

我正在考虑一个系统,其哈希映射word -> count链接到当前分钟,小时和日期的3分钟堆.

每个传入的消息都被标记化,消毒并且在哈希映射中更新了单词计数(如果单词已经存在,则在堆中增加键)

如果堆中不存在任何单词(并且堆大小== 100),请检查它们是否frequency > min value在堆中,如果是,则先解压缩并插入堆中.

有更好的方法吗?

algorithm nlp

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

获取HBase中的过滤行

我试图在应用一些过滤器后从HBase获取行中的选定列.考虑如下表:

ename:fname ename:lname salary:gross salary:da salary:ta

我想获得总薪水> 1500的所有员工的名单.为此,我写了以下代码.我面临的问题是,当我过滤列时,我只得到输出中的那个过滤器,这是有意义的,因为这是它们的创建,但如果我想获得所需的列,但想要仅根据特定列进行过滤,该怎么办?就像我刚才提到的那样 - 所有员工的薪水> 1500.

输出应该是以下一组列:

LNAME,FNAME,工资:毛,工资:TA

代码到目前为止

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.filter.BinaryComparator;
import org.apache.hadoop.hbase.filter.RegexStringComparator;
import org.apache.hadoop.hbase.filter.SubstringComparator;
import org.apache.hadoop.hbase.filter.CompareFilter;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.QualifierFilter;
import org.apache.hadoop.hbase.filter.FamilyFilter;
import org.apache.hadoop.hbase.filter.FilterList;
import org.apache.hadoop.hbase.filter.ValueFilter;
import org.apache.hadoop.hbase.util.Bytes;


import java.io.IOException;
import java.util.ArrayList;
import java.util.List;


public class MyQualifierFilterExample {

  public static void main(String[] args) throws IOException {
    Configuration conf = HBaseConfiguration.create();

    HTable table = new HTable(conf, "emp");

    List<Filter> filters …
Run Code Online (Sandbox Code Playgroud)

hbase

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

使用Gmock模拟参数化构造函数

我有类被嘲笑但它没有默认构造函数.我无法更改源代码.那么有没有办法使用Gmock模拟参数化构造函数

c++ constructor mocking googletest gmock

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

区域设置不能切换到Rails 4

我的Rails应用程序是在rails 4.0.2上,我在使用locale变量和params[:locale]从官方rails 指南之后的url方案切换翻译时遇到问题.我有一个单页的网站我的网站.

我的国际化路线:

scope "(:locale)", locale: /en|de/ do
  #my routes here
end
Run Code Online (Sandbox Code Playgroud)

我的应用控制器

before_filter :set_locale
  def set_locale
     I18n.locale = params[:locale] || I18n.default_locale
     #Rails.application.routes.default_url_options[:locale]= I18n.locale
  end

  # app/controllers/application_controller.rb
  def default_url_options(options = {})
     { locale: I18n.locale }.merge options
  end
Run Code Online (Sandbox Code Playgroud)

用于更改视图中区域设置变量的链接:

<%= link_to_unless I18n.locale == :en, "English", locale: :en %>
|
<%= link_to_unless I18n.locale == :de, "Deutsch", locale: :de %>
Run Code Online (Sandbox Code Playgroud)

会发生什么:locale变量设置正确但翻译没有切换.如果我删除其中一个翻译文件(目前用于英语和德语),语言将切换到剩余的翻译文件.当我放回另一个翻译文件并尝试通过更改语言环境变量切换到它时,它永远不会切换到另一种语言.

为什么我的代码没有改变翻译?

ruby ruby-on-rails rails-i18n ruby-on-rails-4

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

混合shell和python脚本可能吗?

我发誓我以前见过这个,但现在找不到它.是否有可能让shell脚本启动python interpeter"mid stream",即:

#!/bin/bash
#shell stuff..

set +e

VAR=aabb

for i in a b c; do
    echo $i
done

# same file!

#!/usr/bin/env python
# python would be given this fd which has been seek'd to this point

import sys

print ("xyzzy")

sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

python linux shell

6
推荐指数
1
解决办法
5515
查看次数

如何制作针对MRI和JRuby的宝石?

我想创建一个gem,当其他人试图将它与MRI一起使用时,它将使用C代码,当他们从JRuby使用它时,它将使用Java代码.

nokogiri和puma gems这样做,我已经看了他们的代码,但没看到他们是如何实现它的.

ruby gem jruby

6
推荐指数
1
解决办法
660
查看次数

持久 stty 设置?

目前,我可以通过执行 来禁用终端输出挂起/恢复“功能”(CTRL+S 和 CTRL+Q 废话)stty -ixon

不幸的是,这不是永久性的。我每次启动时都需要设置此选项xterm

是否有一个可以编辑的文件可以记住我的设置并在重新启动和重新启动时保持永久设置?

unix linux terminal

6
推荐指数
1
解决办法
3967
查看次数

C++ Zero of Zero:多态删除和unique_ptr行为

在最近实施零规则主题下的超载期刊中,作者描述了我们如何避免编写五个操作符规则,因为编写它们的原因是:

  1. 资源管理
  2. 多态删除

这两个都可以通过使用智能指针来处理.

在这里,我对第二部分特别感兴趣.

请考虑以下代码段:

class Base
{
public:
    virtual void Fun() = 0;
};


class Derived : public Base
{
public:

    ~Derived()
    {
        cout << "Derived::~Derived\n";
    }

    void Fun()
    {
        cout << "Derived::Fun\n";
    }
};


int main()
{
    shared_ptr<Base> pB = make_shared<Derived>();
    pB->Fun();
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,正如文章的作者解释的那样,我们通过使用共享指针获得多态删除,这确实有效.

但是,如果我shared_ptr用a 替换unique_ptr,我不再能够观察到多态删除.

现在我的问题是,为什么这两种行为有所不同?为什么不shared_ptr照顾多态删除unique_ptr

c++ polymorphism smart-pointers rule-of-zero

6
推荐指数
1
解决办法
2739
查看次数

我如何编写像"破坏......一样"的策略?

在coq中,该destruct策略有一个变体接受"连接析取引入模式",允许用户为引入的变量分配名称,即使在解包复杂的归纳类型时也是如此.

coq中的Ltac语言允许用户编写自定义策略.我想写(实际上,维持)一种策略,在将控制权交给之前做一些事情destruct.

我希望我的自定义策略允许(或要求,更容易)用户提供我的策略可以提供的介绍模式destruct.

Ltac语法实现了什么?

coq ltac

6
推荐指数
1
解决办法
702
查看次数