作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
考虑这个示例代码:
template <class T>
using pt_type = typename T::type;
template <class T>
class V {
using type = int;
public:
using pt = pt_type<V>;
};
void g() {
V<int>::pt a; // Does compile
pt_type<V<int>> b; // Does not compile
}
V<int>::pt
是 pt_type<V<int>>
的别名.然而,它被定义的事实取决于它被引用的上下文。
C++ 标准 中哪里解释了模板实参替换模板实参是在引用别名特化的上下文中执行的?
最佳答案
无处可去。这是 core issue 1554 .
The interaction of alias templates and access control is not clear from the current wording of 14.5.7 [temp.alias]. For example:
template <class T> using foo = typename T::foo;
class B {
typedef int foo;
friend struct C;
};
struct C {
foo<B> f; // Well-formed?
};
关于c++ - 为什么模板别名特化取决于引用它的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48453343/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
正如您在 this travis.yml 中看到的那样文件,我的代码依赖于一些第三方库,我在构建项目之前将它们安装在远程系统上。 Travis 每次推送提交时都会下载并构建这些库,这可以避免吗?我的意
我是一名优秀的程序员,十分优秀!