删除decltype中的引用(返回T而不是T&,其中T&是decltype)

(如果您是C ++ 11专业版,请跳至粗体段落。) 比方说,我想写一个模板方法,它调用并返回types是模板参数的传递对象的结果: template<ReturnType, T> ReturnType doSomething(const T & foo) { return foo.bar(); // EDIT: Might also be an expression introducing a temp val } 所以T必须有一个方法ReturnType T::bar() const为了在这样的调用中使用: struct MyClass { … int bar() const; … }; … MyClass object; int x = doSomething<int, MyClass>(object); 我们不必写MyClass感谢types扣除和调用变成: int x = doSomething<int>(object); 但省略<int>也会导致编译错误,因为该方法不需要返回int以便事后分配给x (例如,它可以返回char )。 在C […]

如何在python Tornado服务器的请求中执行多处理?

我正在使用I / O非阻塞python服务器Tornado。 我有一类GET请求可能需要大量的时间才能完成(想想在5-10秒的范围内)。 问题在于Tornado阻塞了这些请求,以便后续的快速请求被保留,直到缓慢的请求完成。 我看着: https : //github.com/facebook/tornado/wiki/Threading-and-concurrency ,得出结论,我想#3(其他进程)和#4(其他线程)的组合。 #4自己有问题,而当另一个线程正在进行“重型升降”时,我无法得到可靠的控制回到ioloop。 (我认为这是由于GIL和重负载任务具有高CPU负载,并保持远离主Ioloop的控制的事实,但这是一个猜测)。 所以我一直在做原型devise,通过在一个单独的进程中在这些缓慢的GET请求中完成“繁重的任务”,然后在完成请求的过程中将callback放回到Tornado ioloop中。 这释放了ioloop来处理其他请求。 我已经创build了一个简单的例子来演示一个可能的解决scheme,但是很好奇从社区那里得到反馈。 我的问题有两方面:如何简化现行的方法? 它可能存在哪些缺陷? 该方法 利用Tornado内置的asynchronous装饰器,允许请求保持打开状态,并继续使用ioloop。 使用python的multiprocessing模块为“繁重”任务生成一个单独的进程。 我第一次尝试使用threading模块,但无法得到任何可靠的控制权交给ioloop。 多核处理似乎也会利用多核。 在主Ioloop进程中使用正在监视multiprocessing.Queue处理的threading模块启动一个“观察者”线程。当完成时,“繁重”任务的结果将会被调用。 这是需要的,因为我需要一种方式来知道重载任务已经完成,同时还能够通知ioloop这个请求已经完成。 确保“监视器”线程经常使用time.sleep time.sleep(0)调用将控制权交给主Ioloop循环,以便继续处理其他请求。 当队列中存在结果时,使用tornado.ioloop.IOLoop.instance().add_callback()从“观察者”线程添加一个callbacktornado.ioloop.IOLoop.instance().add_callback() ,该函数被logging为从其他线程调用ioloop实例的唯一安全方法。 一定要在callback中调用finish()来完成请求并提交回复。 下面是显示这种方法的一些示例代码。 multi_tornado.py是实现上述大纲的服务器, call_multi.py是一个示例脚本,它以两种不同的方式调用服务器来testing服务器。 两个testing都使用3个慢速GET请求和20个快速GET请求来调用服务器。 在打开和closures线程的情况下都显示结果。 在使用“无线程”运行的情况下,3个缓慢的请求块(每个都需要一秒多的时间才能完成)。 20个快速请求中的一些挤入了ioloop中的一些缓慢请求之间(并不完全确定这是怎么发生的,但可能是我在同一台机器上同时运行服务器和客户端testing脚本的工件)。 这里的要点是,所有的快速请求都受到不同程度的影响。 在使用线程运行的情况下,20个快速请求全部首先立即完成,然后三个慢速请求几乎在同一时间完成,因为它们各自并行运行。 这是所需的行为。 三个缓慢的请求需要2.5秒才能并行完成 – 而在非线程的情况下,三个缓慢的请求总共花费约3.5秒。 所以整体上大概有35%的速度(我认为是由于多核共享)。 但更重要的是 – 快速的请求立即在缓慢的请求中处理。 我没有很多的multithreading编程经验 – 所以虽然这似乎在这里工作,我很好奇学习: 有一个更简单的方法来完成这个吗? 在这种方法中可能会潜伏什么? (注意:未来的折衷可能是运行更多的Tornado实例,并使用像nginx这样的反向代理来进行负载均衡,无论我将使用负载均衡器运行多个实例 – 但是我只关心在这个问题上抛硬件因为看起来硬件在阻塞方面与问题直接相关)。 […]

绘制pandas集团的结果

我开始学习pandas,并试图find最艰难的(或pandasthonic?)方式来完成某些任务。 假设我们有一个DataFrame,列A,B和C. 列A包含布尔值:每行的A值为true或false。 B列有一些我们想要绘制的重要值。 我们想要发现的是,将A设置为false的行的B值之间的细微差别与具有A的行的B值是正确的。 换句话说, 我怎样才能根据列A的值(true或false)进行分组,然后在同一个图上绘制两个组的列B的值? 这两个数据集应该有不同的颜色,以便能够区分这些点。 接下来,让我们给这个程序增加一个特性:在绘图之前,我们要为每一行计算另一个值并将其存储在D列中。这个值是logging之前整个五分钟内存储在B中的所有数据的平均值 – 但我们只包含存储在A中的具有相同布尔值的行 换句话说, 如果我有一行,其中A=True , time=t ,我想计算D列的值,它是从时间t-5到t所有logging的B的均值,它们具有相同的A=True 。 在这种情况下,我们怎样才能在A的值上执行groupby,然后将这个计算应用到每个单独的组,然后绘制这两个组的D值?

Android中的文本/布局alignment(textAlignment,gravity)

android:textAlignment和android:gravity什么区别?

jQuery元素变得可见

基本上,我想知道是否有一种方法来自动运行一个function,当一个元素变得隐藏或可见,而不是在用户点击,但自动在另一个脚本。 我不希望这只是运行一次,因为元素(如滑块)不断从可见变为隐藏。 这是jQuery可以绑定的东西吗? 比如将元素的可见性绑定到一个函数(我不知道该怎么写) 如果你需要我详细说明我想要做什么,请告诉我。 谢谢 伪代码: $('#element').bind('display:none', function); function(){ //do something when element is display:none } $('#element').bind('display:block', function2); function2(){ //do opposite of function }

融合的位置提供商似乎不使用GPS接收器

Moto G上的Android 4.3,Nexus 7 2012上的Android 4.4.2,Nexus 5上的Android 4.4.2。 我不想收到定期的位置更新,我只是想要一个准确的位置,当用户按下button。 我已经按照这个例子: https : //developer.android.com/training/location/retrieve-current.html 在清单文件中: <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 我使用GooglePlayServicesUtil.isGooglePlayServicesAvailable检查Play服务是否可用 主要活动: //in activity onCreate method mLocationClient = new LocationClient(this, this, this); @Override protected void onStart() { mLocationClient.connect(); super.onStart(); } @Override protected void onStop() { mLocationClient.disconnect(); super.onStop(); } //in button onclick method mCurrentLocation = mLocationClient.getLastLocation(); […]

为什么我在Swift中初始化这个variables的时候得到一个“初始化之前使用的variables”错误?

我努力理解为什么我在使用Swift的iOS项目中遇到这个编译器错误。 如果我创build了以下类: class InitTest { let a: Int let b: Int let c: Int init () { self.a = 3 self.b = 4 self.c = self.runCalculation() } func runCalculation () -> Int { return self.a * self.b } } 我在self.c = self.runCalculation()这行中得到了一个编译器错误,说“初始化之前使用了variables'self.c'”。 起初我以为这是因为编译器无法validationrunCalculation()方法没有访问self.c ,但后来我试着将init方法混合了一下: init () { self.a = 3 self.c = self.runCalculation() self.b = […]

visual studio 2015 update 2 RTM和RCdebugging上下文不可用

更新1: 将Visual Studio更新到版本2015更新2 RTM之后,问题仍然存在。 更新2修补程序可用4/12/2016 : 感谢Patrick Nelson。 一个补丁已经发布 你可以在这里下载补丁。 更新3 8/16/2016: 最新的vs 2015更新3 KB3165756有同样的问题不更新 使用的版本: 最新的稳定版本的Visual Studio更新2 rc 禁用了所有的分机,并重新启动了我的所有设置 重现步骤: 安装visual studio update 2 rc 使用asp.net mvc核心模板创build新项目 debugging应用程序 预期的行为: 为了能够debuggingasp.net应用程序 实际行为: 我无法探索visual studio编辑器或立即窗口中的variables的上下文,我在即时窗口中得到以下错误 错误CS0103:名称'myvariable'在当前上下文中不存在

docker工我如何得到依赖的孩子图像列表?

我试图删除一个图像,我得到: # docker rmi f50f9524513f Failed to remove image (f50f9524513f): Error response from daemon: conflict: unable to delete f50f9524513f (cannot be forced) – image has dependent child images 这是docker版本: # docker version Client: Version: 1.10.3 API version: 1.22 Go version: go1.5.3 Git commit: 20f81dd Built: Thu Mar 10 21:49:11 2016 OS/Arch: linux/amd64 Server: Version: 1.10.3 […]

如何在MATLAB中生成函数依赖关系列表?

为了发布我写的函数,这个函数依赖于我写的其他函数有自己的依赖关系等等,而不分发我所写的每个m文件,我需要弄清楚完整的依赖关系列表是什么对于给定的m文件。 有没有内置/免费下载的方式来做到这一点? 具体来说,我对MATLAB 7.4.0(R2007a)的解决scheme很感兴趣,但如果在老版本中有不同的方法,请务必在这里添加它们。