微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在类内部定义的C ++ 17演绎指南在该类内部无效,但在该类外部有用

如何解决在类内部定义的C ++ 17演绎指南在该类内部无效,但在该类外部有用

if (webview.goBack()){
  // if web view has something to go back use it
}else{
navigation.goBack()
}

我在名为sampleView : Html Message sampleView = Html.div (class "sample-card" :: Styles.sampleCard) [ Html.div (class "sample-card-list" :: Styles.sampleCardList) [ Html.button (class "sample-card-button" :: Styles.sampleCardListButton) [ Html.text "サンプルボタン" ] ] ] 的类中定义了一些<button class="sample-card-button" onclick="btnClick();">サンプルボタン</button> /* JavaScript 側 */ function btnClick() { console.log("クリックされました"); }); 演绎指南。

但是我发现包含模板参数#include <variant> struct A { }; struct B { }; struct Test { template<typename Ts> struct overloaded : Ts { }; // 1st Deduction Guide template<typename Ts> overloaded(Ts)->overloaded<Ts>; // 2nd Deduction Guide for class "A" overloaded(A)->overloaded<A>; void Fun() { // OK overloaded obj1{ A{} }; // Error: No instance of constructor matches the argument list // I think the 1st Deduction Guide is not effective inside class "Test" overloaded obj2{ B{} }; } }; int main() { // All Deduction Guides in class "Test" are effective here // OK Test::overloaded obj1{ A{} }; // OK Test::overloaded obj2{ B{} }; return 0; } 的第一推论指南在类C++17本身内部无效。但在它之外有效,例如在Test函数中。

Ts

包括模板参数的第二推论指南在班级内部和外部均有效。

Test

谁能告诉我为什么?

我的IDE是main,C ++标准是template<typename Ts> overloaded(Ts)->overloaded<Ts>;

谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?