标签: forwarding

C++ 11用例用于对和元组的piecewise_construct?

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

tuples forwarding use-case piecewise c++11

33
推荐指数
1
解决办法
9763
查看次数

在Google App Engine上使用HTTPS SSL时,裸域重定向失败

我们有一个网站:

www.feeltracker.com

这是在Google App Engine上运行的

在Google App Engine上,我们有Naked Domain转发设置,因此:

http://feeltracker.com

重定向到

http://www.feeltracker.com

但是,当我们尝试在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)

ssl https google-app-engine forwarding

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

iptables FORWARD和INPUT

我有一个带有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)

linux forwarding iptables input

29
推荐指数
2
解决办法
8万
查看次数

C++ 03中的完美转发

如果你有这个功能

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?

c++ forwarding c++03

24
推荐指数
1
解决办法
4079
查看次数

如何在Amazon Route53中将http请求转发到https?

我在Amazon Route53中有一个子域.让我们说secure.example.com

如果请求来https://secure.example.com得好,但我想http通过https 强制请求.当用户类型http://secure.example.com需要转发时https://secure.example.com.

是否有一个域级别重定向/转发请求通过来httphttpsAmazon Route53

https forwarding amazon-web-services amazon-route53

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

为什么使用std :: forward <T>而不是static_cast <T &&>

当给出以下结构的代码时

template <typename... Args>
void foo(Args&&... args) { ... }
Run Code Online (Sandbox Code Playgroud)

我经常static_cast<Args&&>在函数中看到库代码用于参数转发.通常,对此的理由是使用static_cast避免不必要的模板实例化.

鉴于语言的参考折叠和模板扣除规则.我们得到了完美的转发,static_cast<Args&&>这个声明的证据如下(在误差范围内,我希望答案会启发)

  • 当给出rvalue引用时(或者为了完整性 - 没有像本示例中那样的引用限定条件),这会以这样的方式折叠引用,即结果是rvalue.使用的规则是&& &&- > &&(1上面的规则)
  • 当给定左值引用时,这会以这样的方式折叠引用,即结果是左值.这里使用的规则是& &&- > &(2上面的规则)

这基本上foo()bar()在上面的例子中转发参数.这也是你在std::forward<Args>这里使用时会得到的行为.


问题 -为什么要std::forward在这些背景下使用?避免额外的实例化是否有理由违反惯例?

Howard Hinnant的论文n2951规定了6个约束,在这些约束条件下,任何实现都std::forward应该"正确".这些曾经是

  1. 应该将左值作为左值转发
  2. 应该将右值作为右值转发
  3. 不应该将右值作为左值转发
  4. 应该将更少的cv限定表达式转发给更多cv限定的表达式
  5. 应该将派生类型的表达式转发为可访问的,明确的基类型
  6. 不应转发任意类型的转换

(1)和(2)证明与static_cast<Args&&>上述方法一起正常工作.(3) - (6)这里不适用,因为在推导的上下文中调用函数时,这些都不会发生.


注意:我个人更喜欢使用std::forward,但我的理由纯粹是我更喜欢坚持惯例.

c++ templates forwarding rvalue-reference c++17

23
推荐指数
3
解决办法
1429
查看次数

VirtualBox端口转发不使用NAT适配器

我正在尝试使用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端口转发相对简单.

谢谢!

port networking virtualbox forwarding nat

21
推荐指数
3
解决办法
6万
查看次数

在OOP中,什么是转发,它与委托有什么不同?

有人请解释转发和委托之间的区别吗?它们看起来很相似,但我还没有找到一个好的转发定义,所以我不确定我是否真的理解.

c++ oop forwarding class delegation

20
推荐指数
3
解决办法
8200
查看次数

DMARC是电子邮件转发的终结吗?

我在很多域上使用了相当多的电子邮件转发功能,AOL的最新p =拒绝政策给我带来了一些问题,也引起了很多困惑.我对DMARC的理解是它基于带有报告层的DKIM和SPF.我知道SPF是一个转发问题,但只要SPF设置为〜所有软故障,那么这不是一个显示停止.我还认为DKIM可以毫无问题地通过转发,只要你没有太多问题.但是我发现,当他们降落在GMail时,由MailGun转发的某些来自AOL的电子邮件正在使DMARC失败.MailGun说它是由于发件人/不匹配错误.任何人都可以详细说明电子邮件转发注定是因为DMARC占用还是MailGun没有正确转发?

email forwarding email-forwarding mailgun dmarc

18
推荐指数
2
解决办法
8813
查看次数

Struts 1.3动作转发参数

我正在开发一个使用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参数.除了重建我自己的行动之外,这是否还有其他任何方式?我找不到任何辩论此事的文件.谢谢!

java forwarding struts-1

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