在N3059中,我找到了对(和元组)的分段构造的描述(它在新标准中).
但是我不知道什么时候应该使用它.我发现了关于emplace和不可复制实体的讨论,但是当我尝试它时,我无法创建一个我需要 piecewiese_construct或可以看到性能优势的案例.
例.我以为我需要一个不可复制的类,但是movebale(转发需要):
struct NoCopy {
NoCopy(int, int) {};
NoCopy(const NoCopy&) = delete; // no copy
NoCopy& operator=(const NoCopy&) = delete; // no assign
NoCopy(NoCopy&&) {}; // please move
NoCopy& operator=(NoCopy&&) {}; // please move-assign
};
Run Code Online (Sandbox Code Playgroud)
然后,我想到标准对构造会失败:
pair<NoCopy,NoCopy> x{ NoCopy{1,2}, NoCopy{2,3} }; // fine!
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.实际上,这是我所期望的,因为"移动东西"而不是在stdlib中的任何地方复制它应该是.
因此,我认为我没有理由这样做,或者说:
pair<NoCopy,NoCopy> y(
piecewise_construct,
forward_as_tuple(1,2),
forward_as_tuple(2,3)
); // also fine
Run Code Online (Sandbox Code Playgroud)
piecewise_construct?我们有一个网站:
www.feeltracker.com
这是在Google App Engine上运行的
在Google App Engine上,我们有Naked Domain转发设置,因此:
重定向到
但是,当我们尝试在Chrome中打开以下地址时:
https://feeltracker.com(注意HTTPS)
我们收到了一个Google错误页面,其中包含以下消息:
Google
404. That’s an error.
The requested URL / was not found on this server. That’s all we know.
Run Code Online (Sandbox Code Playgroud)
有谁知道我们如何确保https://feeltracker.com重定向到www.feeltracker.com?
请注意,在Firefox中,我们在尝试打开https://feeltracker.com时会收到以下附加信息:
feeltracker.com uses an invalid security certificate.
The certificate is only valid for the following names:
*.google.com , *.android.com , *.appengine.google.com , *.cloud.google.com , *.google-analytics.com , *.google.ca , *.google.cl , *.google.co.in , *.google.co.jp , *.google.co.uk , *.google.com.ar , *.google.com.au , …Run Code Online (Sandbox Code Playgroud) 我有一个带有Linux pc的家庭网络,它们都运行iptables.我认为把我的局域网放在Linux网关/防火墙后更容易,所以我在我的路由器和局域网之间安装了一台电脑(带有fedora,没有gui)并配置了iptables.这里没问题,INPUT只允许dns一个http(和一些本地的东西),转发工作正常:LAN连接到互联网.
但我的问题是:FORWARD允许来自外部的所有内容,还是只允许我使用INPUT配置的端口?FORWARD和INPUT一起工作还是分开?
这是我的iptables:
*nat
:PREROUTING ACCEPT [16:1336]
:INPUT ACCEPT [14:840]
:OUTPUT ACCEPT [30:2116]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o p1p1 -j MASQUERADE
COMMIT
# Completed on Tue Oct 16 09:55:31 2012
# Generated by iptables-save v1.4.14 on Tue Oct 16 09:55:31 2012
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [91:9888]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p UDP --dport 53 -j ACCEPT
-A INPUT -p TCP --dport …Run Code Online (Sandbox Code Playgroud) 如果你有这个功能
template<typename T> f(T&);
Run Code Online (Sandbox Code Playgroud)
然后尝试调用它,让我们说一个rvalue就好
f(1);
Run Code Online (Sandbox Code Playgroud)
为什么T不能被推导为const int,使得参数成为一个const int&因而可以绑定到一个rvalue?
我在Amazon Route53中有一个子域.让我们说secure.example.com
如果请求来https://secure.example.com得好,但我想http通过https 强制请求.当用户类型http://secure.example.com需要转发时https://secure.example.com.
是否有一个域级别重定向/转发请求通过来http来https的Amazon Route53?
当给出以下结构的代码时
template <typename... Args>
void foo(Args&&... args) { ... }
Run Code Online (Sandbox Code Playgroud)
我经常static_cast<Args&&>在函数中看到库代码用于参数转发.通常,对此的理由是使用static_cast避免不必要的模板实例化.
鉴于语言的参考折叠和模板扣除规则.我们得到了完美的转发,static_cast<Args&&>这个声明的证据如下(在误差范围内,我希望答案会启发)
&& &&- > &&(1上面的规则)& &&- > &(2上面的规则)这基本上foo()是bar()在上面的例子中转发参数.这也是你在std::forward<Args>这里使用时会得到的行为.
问题 -为什么要std::forward在这些背景下使用?避免额外的实例化是否有理由违反惯例?
Howard Hinnant的论文n2951规定了6个约束,在这些约束条件下,任何实现都std::forward应该"正确".这些曾经是
(1)和(2)证明与static_cast<Args&&>上述方法一起正常工作.(3) - (6)这里不适用,因为在推导的上下文中调用函数时,这些都不会发生.
注意:我个人更喜欢使用std::forward,但我的理由纯粹是我更喜欢坚持惯例.
我正在尝试使用VirtualBox进行简单的端口转发,看起来VirtualBox.exe正在侦听端口的主机,但实际上并没有将连接转发给guest虚拟机.我尝试过多个端口,并且我已经多次重启VirtualBox.另一方面,访客主机连接很好.这是信息:
Host: Win7 x64
Guest: Win7 x64
VirtualBox version: VirtualBox 4.2.10
Firewalls: All firewalls on host and guest disabled.
Virtual Box > Machine Settings > Network
Adapter 1:
Attached to: NAT
Cable Connected : True
Port Forwarding:
Rule 1: TCP, HostIP=127.0.0.1, HostPort=8081, GuestIP=127.0.0.1, GuestPort=8081
On Host:
[VirtualBox.exe] TCP 127.0.0.1:8081 IBM-6KT5OPCF76P:0 LISTENING
On Guest:
I never get the connection request on port 8081 or any others I've tried.
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我想避免使用VirtualBox的桥接适配器有多种原因.我认为使用VirtualBox,NAT端口转发相对简单.
谢谢!
有人请解释转发和委托之间的区别吗?它们看起来很相似,但我还没有找到一个好的转发定义,所以我不确定我是否真的理解.
我在很多域上使用了相当多的电子邮件转发功能,AOL的最新p =拒绝政策给我带来了一些问题,也引起了很多困惑.我对DMARC的理解是它基于带有报告层的DKIM和SPF.我知道SPF是一个转发问题,但只要SPF设置为〜所有软故障,那么这不是一个显示停止.我还认为DKIM可以毫无问题地通过转发,只要你没有太多问题.但是我发现,当他们降落在GMail时,由MailGun转发的某些来自AOL的电子邮件正在使DMARC失败.MailGun说它是由于发件人/不匹配错误.任何人都可以详细说明电子邮件转发注定是因为DMARC占用还是MailGun没有正确转发?
我正在开发一个使用Struts 1.3的小项目,我遇到了以下问题.
在一些业务逻辑发生之后,Action我想将控件转发给映射到的另一个Action struts-config.xml.
通常这是我解决这个问题的方式:
struts-config.xml中
<action path="/boardCreate" type="com.example.BoardCreateAction" name="BoardCreateForm" input="/board.jsp">
<forward name="success" path="/board.do" redirect="true" />
</action>
Run Code Online (Sandbox Code Playgroud)
Java动作类
return mapping.findForward("success");
Run Code Online (Sandbox Code Playgroud)
这将重定向到board.do也映射到那里的动作.
我的问题是我想将控件重定向到:
<forward name="success" path="/board.do?id=1" redirect="true" />
Run Code Online (Sandbox Code Playgroud)
注意id = 1参数.除了重建我自己的行动之外,这是否还有其他任何方式?我找不到任何辩论此事的文件.谢谢!