C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 以下程序是否按照标准编译?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我发现MSVC和GCC之间的不一致(也许cl ang)编译和链接相同的代码之后,如果这个程序实际编译和链接,那么这个程序就变得很好奇了,因此它是MSVC中的错误(它报告一个链接错误)或者应该我写的不同.该程序由3个文件组成:

C.h

template <typename T>
struct A
{
    void func() {};
};

template <>
void A<int>::func ();

A.cpp:

#include "C.h"
int main()
{
    A<int> x;
    x.func();
}

B.cpp:

#include "C.h"
template <>
void A<int>::func()
{
}
@H_699_2@mSVC导致的链接错误是:

所以基本上决定不要在B.cpp中创建不符合定义的符号.让我强烈怀疑它是一个错误的事情是,从结构定义中移除未定义的func,甚至将其放在专业化声明之上,使程序linnking成功,但我想确定.

所以我的问题是 – 这个程序是否应该被一致的编译器/链接器编译和链接没有错误

解决方法

从标准:

在这种情况下,我认为这是在C.h那里发生“范围声明”的意思.如果是这种情况,那么您的代码应该与标准兼容的工具链链接.我可能会误解这个…

大佬总结

以上是大佬教程为你收集整理的c – 以下程序是否按照标准编译?全部内容,希望文章能够帮你解决c – 以下程序是否按照标准编译?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。