小编aar*_*acy的帖子

在c ++中的类中重载operator <<

我有一个使用结构的类,我想重载该结构的<<运算符,但只在类中:

typedef struct my_struct_t {
  int a;
  char c;
} my_struct;

class My_Class
{
  public:
    My_Class();
    friend ostream& operator<< (ostream& os, my_struct m);
}
Run Code Online (Sandbox Code Playgroud)

我只能在我声明运算符<< overload w/friend关键字时编译,但随后运算符在我的代码中的所有地方都被重载,而不仅仅是在类中.如何在类中重载<< operator for my_struct?

编辑:我想使用重载运算符来打印my_struct,它是My_Class的成员

c++ operator-overloading

5
推荐指数
2
解决办法
5658
查看次数

为什么对返回Deferreds的函数使用* Async命名约定?

Intellij进行检查(即检查棉绒),告诉您return的函数Deferred应以结尾Async

在此处输入图片说明

在动态类型的语言中,这样的命名约定对我来说很有意义。但是Kotlin具有如此出色的类型检查器和工具生态系统,那么为什么要依赖该约定呢?

尤其是因为Kotlin协程在其中进行结构化并发,该函数可能还会采用一个CoroutineScope参数,该参数将在调用站点提供相同的视觉提示:

suspend fun doStuff() = coroutineScope {
  doStuffAsync(this /* CoroutineScope */).await()
  //...
}
Run Code Online (Sandbox Code Playgroud)

作为附带说明,我了解检查的消息,即您几乎不希望使用返回a Deferred而不是suspend函数的函数。那不是我的问题。我的问题是假设您知道自己在做什么,并且想要一个Deferred

kotlin kotlin-coroutines

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

grep -r在python中

我想在python函数中实现unix命令'grep -r'.我知道commands.getstatusoutput(),但是现在我不想使用它.我想出了这个:

def grep_r (str, dir):
    files = [ o[0]+"/"+f for o in os.walk(dir) for f in o[2] if os.path.isfile(o[0]+"/"+f) ]
    return [ l for f in files for l in open(f) if str in l ]
Run Code Online (Sandbox Code Playgroud)

但那当然不使用正则表达式,它只是检查'str'是否是'l'的子串.所以我尝试了以下内容:

def grep_r (pattern, dir):
    r = re.compile(pattern)
    files = [ o[0]+"/"+f for o in os.walk(dir) for f in o[2] if os.path.isfile(o[0]+"/"+f) ]
    return [ l for f in files for l in open(f) if r.match(l) ]
Run Code Online (Sandbox Code Playgroud)

但这不起作用,即使前者的功能也没有给我任何匹配.改变了什么?我可以将它拆分成一堆嵌套循环,但我更感兴趣的是简洁而不是可读.

python grep

4
推荐指数
2
解决办法
7147
查看次数

如何制作字段集`display:block; 溢出:auto`显示滚动条?

我希望我的<fieldset>元素<div>通过填充其包含元素并在设置时显示滚动条来表现得像香草一样overflow: auto.

例如,我不明白为什么这个例子中的fieldset 比包含div更宽:

<div class=outer>
  <fieldset class=inner>
      fooooooooooooooooooooooooooooooooooooo
  </fieldset>
</div>

<div class=outer>
  <div class=inner>
    fooooooooooooooooooooooooooooooooooooooo
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

和相应的CSS:

.outer {
  width: 60px;
}

.inner {
  overflow: auto;
  display: block;
  height: 60px;
  border: 1px solid red;
}
Run Code Online (Sandbox Code Playgroud)

html css

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

Google API返回的结果与网站不同

当我在google.com上进行特定于网站的搜索时:

site:http://one-month-of-chat-logs.github.io security

我得到12个结果.我注册了自定义搜索引擎(cx: 015271449006306103053:mz6wkimeenc)和API密钥,当我运行相同的搜索时,我只得到3个结果:

$ curl 'https://www.googleapis.com/customsearch/v1?key=$MY_API_KEY&cx=015271449006306103053%3Amz6wkimeenc&q=security'
Run Code Online (Sandbox Code Playgroud)

为什么结果不同?我的API请求是否实际查询的内容与我在google.com上执行的搜索不同?

google-api

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

具有两个不同控制器和RESTful路由的资源的form_for标记

我有一个带有"Route"资源的Rails应用程序和一个"Route"控制器(不要与Rails路由混淆).我已经设置好了,以便站点管理员(只有管理员)可以通过"路由"控制器管理"路由"资源,而普通用户使用"Myroute"控制器管理他们的路由.我希望两个控制器都使用RESTful路由,但是在"Myroute"控制器的"编辑"视图中我遇到了form_for函数的问题.

我的"Myroute"控制器的"编辑"视图的表单标签目前是:

<% form_for @route, :url => { :id => @route.id }, :html => { :method => :put } do |f| %> 
Run Code Online (Sandbox Code Playgroud)

其中解析如下:

<form action="/myroutes/44/edit" class="edit_route" id="edit_route_44" method="post">
Run Code Online (Sandbox Code Playgroud)

这是不正确的,因为表单的操作应该转到"create"方法,而"edit"方法只处理GET请求.通过查看从"路径"视图生成的HTML,我可以看出,表单应该向"/ myroutes/44"发出PUT请求

如何编写form_for标记,以便它使用RESTful路由来使PUT需要与模型不同的控制器的"更新"方法?

routing ruby-on-rails form-for

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

强制其他应用在 iOS 中释放麦克风

我注意到一个 iOS 应用程序可以在后台继续录制音频,而另一个应用程序在前台录制音频(请注意,这在 iOS 模拟器上并不是严格的,但涉及后台进程黑客使其成为可能) .

有什么方法可以确保在您开始录制之前没有其他应用程序正在录制音频? 如果是这样,有什么方法可以停止其他录制应用程序以便应用程序可以录制?

audio background ios

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

在HUnit中对ErrorCall进行Haskell单元测试

我有一个功能:

unify :: [Constraint] -> [Substitution]
Run Code Online (Sandbox Code Playgroud)

在某些情况下,它会抛出error函数的异常:

error "Circular constraint"
Run Code Online (Sandbox Code Playgroud)

我正在使用Test.HUnit单元测试,我想制作一个测试用例,声明这些错误会被抛出某些输入.我找到了这个,它提供了一种测试异常的方法,这些异常是实例Eq,但error似乎是一个ErrorCall异常,它不是一个实例Eq,所以我得到了错误:

No instance for (Eq ErrorCall)
  arising from a use of `assertException'
Run Code Online (Sandbox Code Playgroud)

如何编写被调用的TestCase断言error并且(最好)检查消息?

haskell hunit

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

带有模板编译错误的c ++类

我不是一个经验丰富的C++程序员,我在编译时遇到问题.我有一个使用模板的Heap类:

template <class T>
class Heap
{
  public:
    Heap(const vector<T>& values);

  private:
    vector<T> d;

  // etc.
};
Run Code Online (Sandbox Code Playgroud)

然后在一个单独的实现文件中:

template <class T>
Heap<T>::Heap(const vector<T>& values)
{
d = values;

for (unsigned int i = d.size()-1; i > 0; i--) Heapify(ParentIndex(i));
}

// ... more implementation code ...
Run Code Online (Sandbox Code Playgroud)

最后一个main.cc文件:

int main (int argc, char *argv[])
{
  vector<int> in;
  unsigned int i;

  while (cin >> i) in.push_back(i);
  Heap<int> h = Heap<int>(in);

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

我得到这些编译错误:

g++ -Wall -I/opt/local/include -c -o main.o main.cc
g++ …
Run Code Online (Sandbox Code Playgroud)

c++ linker templates class

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

Pythonic方式找到正则表达式匹配

是否有更简洁/正确/ pythonic方式来执行以下操作:

url = "http://0.0.0.0:3000/authenticate/login"
re_token = re.compile("<[^>]*authenticity_token[^>]*value=\"([^\"]*)")
for line in urllib2.urlopen(url):
    if re_token.match(line):
        token = re_token.findall(line)[0]
        break
Run Code Online (Sandbox Code Playgroud)

我想从HTML页面获取名为"authenticity_token"的输入标记的值:

<input name="authenticity_token" type="hidden" value="WTumSWohmrxcoiDtgpPRcxUMh/D9m7O7T6HOhWH+Yw4=" />
Run Code Online (Sandbox Code Playgroud)

python regex

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