bind ng bind html怎么用解决

VC &&&&最新内容
VC &&&&随机内容> bind错在那里了呢?该如何解决
bind错在那里了呢?该如何解决
taocunxiu & &
发布时间: & &
浏览:7 & &
回复:0 & &
悬赏:0.0希赛币
bind错在那里了呢?#include&iostream&#include&vector&#include&algorithm&#include&functional&bool f(long x,long y
return x==y; }int main(){ &
vector&long& &
a.reserve(10);&
a.push_back(10);
vector&long&::iterator
it1=a.begin(),it2=a.end();
(it1=find(it1,it2, &
bind2nd(ptr_fun(f),10))) &
cout$<<$find 10:&$<$ &
cout$<$*it1$<$ &
& }:\program files\microsoft visual studio 8\vc\include\algorithm(40) : error C2784: “bool std::operator ==(const std::vector&_Ty,_Alloc& &,const std::vector&_Ty,_Alloc& &)”: 无法从“long”为“const std::vector&_Ty,_Alloc& &”推导 模板 参数 &
c:\program files\microsoft visual studio 8\vc\include\vector(1259) : 参见“std::operator ==”的声明 &
c:\program files\microsoft visual studio 8\vc\include\algorithm(74): 参见对正在编译的函数 模板 实例化“_InIt std::_Find&std::_Vector_iterator&_Ty,_Alloc&,std::binder2nd&_Fn2$>$(_InIt,_InIt,const std::binder2nd&_Fn2& &)”的引用 &
_InIt=std::_Vector_iterator&long,std::allocator&long$>$, &
_Ty=long, &
_Alloc=std::allocator&long&, &
_Fn2=std::pointer_to_binary_function&long,long,bool,bool (__cdecl *)(long,long)& &
e:\c++分支\ddddddddddddddddddddd\ddddddddddddddddddddd\ffffff.cpp(19): 参见对正在编译的函数 模板 实例化“_InIt std::find&std::_Vector_iterator&_Ty,_Alloc&,std::binder2nd&_Fn2$>$(_InIt,_InIt,const std::binder2nd&_Fn2& &)”的引用 &
_InIt=std::_Vector_iterator&long,std::allocator&long$>$, &
_Ty=long, &
_Alloc=std::allocator&long&, &
_Fn2=std::pointer_to_binary_function&long,long,bool,bool (__cdecl *)(long,long)& &
]c:\program files\microsoft visual studio 8\vc\include\algorithm(40) : error C2784: “bool std::operator ==(const std::istream_iterator&_Ty,_Elem,_Traits,_Diff& &,const std::istream_iterator&_Ty,_Elem,_Traits,_Diff& &)”: 无法从“long”为“const std::istream_iterator&_Ty,_Elem,_Traits,_Diff& &”推导 模板 参数 &
c:\program files\microsoft visual studio 8\vc\include\iterator(266) : 参见“std::operator ==”的声明c:\program files\microsoft visual studio 8\vc\include\algorithm(40) : error C2784: “bool std::operator ==(const std::allocator&_Ty& &,const std::allocator&_Other& &) throw()”: 无法从“long”为“const std::allocator&_Ty& &”推导 模板 参数 &
c:\program files\microsoft visual studio 8\vc\include\xmemory(174) : 参见“std::operator ==”的声明c:\program files\microsoft visual studio 8\vc\include\algorithm(40) : error C2784: “bool std::operator ==(const std::istreambuf_iterator&_Elem,_Traits& &,const std::istreambuf_iterator&_Elem,_Traits& &)”: 无法从“long”为“const std::istreambuf_iterator&_Elem,_Traits& &”推导 模板 参数 &
c:\program files\microsoft visual studio 8\vc\include\xutility(2143) : 参见“std::operator ==”的声明c:\program files\microsoft visual studio 8\vc\include\algorithm(40) : error C2784: “bool std::operator ==(const std::reverse_iterator&_RanIt& &,const std::reverse_iterator&_RanIt2& &)”: 无法从“long”为“const std::reverse_iterator&_RanIt& &”推导 模板 参数 &
c:\program files\microsoft visual studio 8\vc\include\xutility(1826) : 参见“std::operator ==”的声明c:\program files\microsoft visual studio 8\vc\include\algorithm(40) : error C2784: “bool std::operator ==(const std::pair&_Ty1,_Ty2& &,const std::pair&_Ty1,_Ty2& &)”: 无法从“long”为“const std::pair&_Ty1,_Ty2& &”推导 模板 参数
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&Javascript中的bind()函数
(仅支持单关键字)
Javascript中的bind()函数
〖 作者:顽shi 〗〖 发布日期: 〗
今天看到公司大神的一段代码:
function ReplaceProcessor() {
this._dom = {
btnReplace : $('#ro_btnReplace'),
btnComplete: $('#ro_btnComplete')
// Bind events
this._dom.btnReplace.on('click', this._onReplace.bind(this));
this._dom.btnComplete.on('click', this._onComplete.bind(this));
ReplaceProcessor.prototype._onReplace = function(){
this._dom.btnComplete.html("OK");
这里面最后两行代码是向DOM节点上绑定事件,&this._onReplace.bind(this)&明显就是绑定的执行函数,在不知道具体作用的情况下猜测一下bind()的作用可能和call或者apply类似,用来改变function执行时的上下文环境,不知道理解的对不对所以找资料来印证一下。
先上官网的解释,不管我们个人的解释是多么的接地气,官方API到底还是比较靠谱的:
&&bind方法会创建一个新函数,称为绑定函数.当调用这个绑定函数时,绑定函数会以创建它时传入bind方法的第一个参数作为this,传入bind方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数.
&&&这个解释多读几次还是很靠谱的,不是很难懂。从功能描述上看和call以及apply还是有区别的,应用的场景不太一样,bind主要是为了改变函数内部的this指向,这个是在ECMA5以后加入的,所以IE8一下的浏览器不支持,当然有兼容的办法,不过坦白说首先对于IE8以下实在无爱,其次那种情况下估计你也没什么心情用bind了吧。。。
东西就是这么个东西,最主要的还是应用的场景,什么情况下使用。本文一开始代码中使用.bind(this)的效果就相当于将事件绑定的callback抽出来写,但是同时还维持了函数中的this指向。本来事件绑定的处理函数一般是一个匿名函数,这里相当于单独抽出来从而使结构更清晰的同时,this指向的是ReplaceProcessor的实例。
这里列举三部分的代码来说明bind能为我们做些什么,同时它的好处在哪里。
(一)事件处理函数
&&&所谓的事件处理函数其实就是绑定事件后的那个callback,这里如果用上bind你的代码应该会简洁优雅一些,我在开篇列出的那段代码里就是这样做的。
var logger = {
updateCount: function(){
console.log(this.x);
// 下面两段代码的实现是一样的
document.querySelector('button').addEventListener('click', function(){
logger.updateCount();
document.querySelector('button').addEventListener('click', logger.updateCount.bind(logger));
如何,这就是我之前说的,本来通常情况下处理函数都要用一层匿名函数包裹一下,才能维持处理函数本身的this.这里直接通过.bind(logger)人为的将其执行时的this指向logger对象。
bind()创建了一个函数,当这个函数在被调用的时候,它的this关键词会被设置成被传入的值(这里指调用bind()时传入的参数)。
(二)setTimeout
function LateBloomer() {
this.petalCount = Math.ceil( Math.random() * 12 ) + 1;
// declare bloom after a delay of 1 second
LateBloomer.prototype.bloom = function() {
window.setTimeout( this.declare.bind( this ), 1000 );
LateBloomer.prototype.declare = function() {
console.log('I am a beautiful flower with ' + this.petalCount + ' petals!');
看一下这里this.dclare.bind(this),相当于将LateBloomer的实例对象传递到declare中,是不是setTimeout简洁了很多,同时不会破坏其他执行函数的结构。
(三)请完整阅读下面的代码
//设立一个简单地对象作为“上下文”
var context = { foo: "bar" };
//一个在this上下文中指向foo变量的函数
function returnFoo () {
return this.
// 变量在作用域中不存在,因此显示undefined
returnFoo(); // => undefined
// 如果我们把它绑定在context上下文中
var bound = returnFoo.bind(context);
// 现在的作用域中有这个变量了
bound(); // => "bar"
// 这就是Function.prototype.bind的作用.
//由于returnFoo也是函数,因此它继承了function的原型
// 如果你觉得享受,接着往下读,下面更精彩
// 有许多方法将函数绑定在一个上下文中
// Call和Apply让你能在上下文中调用函数
returnFoo.call(context); // => bar
returnFoo.apply(context); // => bar
// 将函数添加到对象中
context.returnFoo = returnF
context.returnFoo(); // => bar
// 现在我们来玩一点诡异的东西
// Array.prototype 中有一个叫做slice的方法
// 对一个数组调用slice,可以返回一个从start index到end index的数组
[1,2,3].slice(0,1); // => [1]
// 因此我们把Array.slice赋值给一个本地变量slice
var slice = Array.prototype.
//现在的slice是"自由的",由于Array.prototype中的slice一般指定了上下文
//或者默认为this,此时slice将不起作用
slice(0, 1); // => TypeError: can't convert undefined to object
slice([1,2,3], 0, 1); // => TypeError: ...
// 但是如果我们使用call或者apply,slice又将在一个上下文中执行
slice.call([1,2,3], 0, 1); // => [1]
// Apply和Call差不多,知识参数要放在一个数组中
slice.apply([1,2,3], [0,1]); // => [1]
// 使用call没错了,那么能不呢使用bind呢?
// 没错,我们来把"call"绑定在slice上
slice = Function.prototype.call.bind(Array.prototype.slice);
// 现在slice可以把第一个参数作为上下文了
slice([1,2,3], 0, 1); // => [1]
// 很酷,对吧。现在再来完成一件事
// 现在我们对bind本身做一件刚才对silce做的事
var bind = Function.prototype.call.bind(Function.prototype.bind);
// 在这里总结一下,好好想想
// 发生了什么事? 我们改变了call,
// 返回一个接收一个函数和一个上下文作为ic桉树的函数
//并且返回了一个完全绑定的函数
// 回到最初的例子
var context = { foo: "bar" };
function returnFoo () {
return this.
// 现在来使用神奇的"bind"函数
var amazing = bind(returnFoo, context);
amazing(); // => bar
来源:http://my.oschina.net/blogshi/blog/265415
JavaScript探索者
Copyright@博客访问: 5269384
博文数量: 388
博客积分: 9600
博客等级: 上校
技术积分: 18669
注册时间:
2007年开始从事运维方面的工作,经历过网络管理员、linux运维工程师、DBA、分布式存储运维等多个IT职位。对linux运维、mysql数据库、分布式存储有丰富的经验。2012年加盟腾讯,目前在腾讯负责腾讯云数据库平台和分布式存储运维平台的运维规划工作。
微信:feihongwuhen
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
现在有非常多的公司的都有自己的DNS服务器,也有非常多的公司使用BIND搭建智能DNS服务器。如果bind服务器挂掉那么公司的所有网站都可能会无法访问,那么BIND的安全就至关重要了,如何能通过技术手段加强bind的安全呢?我们这里要介绍的是通过定期查看权威漏洞网站来加固我们的bind服务器,当发现严重的漏洞时能及时的将漏洞补上,加强bind服务器的安全和稳定。在权威漏洞网站上查看到,服务器目前使用的bind版本9.9.0b2存在几个比较严重的远程拒绝服务漏洞,这些漏洞包括: CVE-、CVE-、CVE-,这两个漏洞的等级都为高。以下是对几个漏洞的介绍:CVE-漏洞:&#216;影响版本:BIND 9.6-ESV-R1至9.6-ESV-R7-P1、BIND 9.7.1至9.7.6-P1、BIND 9.8.0至9.8.3-P1、BIND 9.9.0至9.9.1-P1版本&#216;漏洞描述:攻击者可利用此漏洞造成指定进程中的断言失败,拒绝服务合法用户,也可能泄露某些内存信息到客户端。&#216;漏洞解决办法:升级版本至9.6-ESV-R7-P2、9.7.6-P2、9.8.3-P2、9.9.1-P2。CVE-漏洞&#216;影响版本:BIND 9.9.0到9.9.1-P1版本&#216;漏洞描述:BIND 9加载大量的TCP查询存在安全漏洞,允许攻击者提交大量请求触发内存泄露,使名字服务程序停止响应,造成拒绝服务攻击。&#216;漏洞解决办法:将BIND版本升级至9.6-ESV-R7-P1, 9.7.6-P1, 9.8.3-P1, 9.9.1-P1或者9.9.1-P2。CVE-漏洞:&#216;影响版本:9.0.x -> 9.6.x, 9.4-ESV->9.4-ESV-R5-P1, 9.6-ESV->9.6-ESV-R7,9.7.0->9.7.6, 9.8.0->9.8.3, 9.9.0->9.9.1&#216;漏洞描述:在处理DNS资源记录时存在错误,可被利用通过包含零长度rdata的记录造成递归服务器崩溃或泄漏某些内存到客户端,导致敏感信息泄漏或拒绝服务。&#216;漏洞解决办法:升级到BIND 9.9.1-P2版本&&&& 知道了BIND服务器存在的漏洞,那么我们就可以很好的来避免危险的发生了。接下来我就来详细介绍如何将BIND版本9.9.0b2升级到 BIND 9.9.1-P2版本。不过有的朋友可能也不清楚自己的bind用的什么什么版本,我们可以采用如下命令来查看:/usr/local/bind/sbin/named –V
BIND 9.9.0b2 built with '--with-dlz-mysql=/usr/local/mysql/' '--enable-largefile' '--enable-threads=no' '--prefix=/usr/local/bind' '--with-openssl=yes'using OpenSSL version: OpenSSL 0.9.8e-rhel5 01 Jul 2008using libxml2 version: 2.6.26这个命令可以返回bind的版本、编译参数、openssl版本、libxml2的版本。升级BIND主要包含如下步骤:1.备份bind目前的版本数据
cp -ar /usr/local/bind /data/backup/bind_2.下载bind-9.9.1-P2版本
wget http://ftp.isc.org/isc/bind9/cur/9.9/bind-9.9.1-P2.tar.gz3.安装bind-9.9.1-P2版本
tar xzvf bind-9.9.1-P2.tar.gzcd bind-9.9.1-P2#编译的时候的参数最好和老版本的一致./configure --with-dlz-mysql=/usr/local/mysql/ --enable-largefile --enable-threads=no --prefix=/usr/local/bind --with-openssl=yesmake make install4.重启bind
#杀掉named进程后启动新版本bindkill -9 `ps aux | grep named|grep -v "grep" | awk '{print $2}'`/usr/local/bind/sbin/named -c /usr/local/bind/etc/named.conf5.查看版本情况
/usr/local/bind/sbin/named –V#此时我们已经可以看到新版本的bind信息了BIND 9.9.1-P2 built with '--with-dlz-mysql=/usr/local/mysql/' '--enable-largefile' '--enable-threads=no' '--prefix=/usr/local/bind' '--with-openssl=yes'using OpenSSL version: OpenSSL 0.9.8e-rhel5 01 Jul 2008using libxml2 version: 2.6.266.测试解析是否正常
dig @119.135.22.32 此时如果dns解析正常的话,整个升级过程就完成了。
总结:作为一个系统管理员或者网络管理员,我们应该定期地去权威的漏洞网站,查看我们线上使用的软件以及系统是否存在严重的安全漏洞,一经发现则要提高安全意识,尽快的将漏洞补上,减少安全事件的发生。sebug.net是一个很好的权威漏洞网站,大家没事的时候可以多去逛逛。对于以上的几个bind的安全漏洞也希望广大的IT技术人员能够引起注意。
阅读(5878) | 评论(0) | 转发(2) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。JVM_Bind问题的解决方案
JVM_Bind问题出现通常有两种情况。
一种是原来的javaw.exe没有结束掉而又新创建了一个javaw.exe进程。这本无可厚非,允许多个java的进程同时运行,但是如果两个java的进程都使用了同一个资源的情况下,后者的javaw.exe进程就会出现JvmBind的问题。
解决方法:在资源管理器进程中找出javaw.exe进程,关闭与当前需要执行的javaw.exe无关联的其他javaw.exe进程。注意如果在Eclipse下运行,eclipse也会创建一个javaw.exe进程,这个进程所占的内存通常比其他javaw.exe大,不要关闭这个进程。
第二种情况就是端口占用。首先查看一下端口占用的情况:,windows下在命令行中输入:netstat
-aon|findstr "8090"(这边的8090是我程序需要开启的tomcat的设置端口)
根据命令行输出找到监听端口的进程号ID,命令行中输入tasklist|fidstr
"进程ID",来找到是什么应用在监听该端口。
找到该进程后,通过在资源管理器中关闭该进程,解除其对端口占用。下次启动应用程序应该就不会出现JVMBind的问题了。
&第二种情况的解决方案参考:
附其解决图示:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 .bind this 怎么用 的文章

 

随机推荐