以下代码使用clang 3.9发出(正确)警告:
#include <warning_global_symlink.hpp>
#include "warning_local_symlink.hpp"
int main( int argc, char* argv[] )
{
// This line shows no warning whatsoever.
WarningGlobalSymlink< int > symlink;
// This line correctly shows the warning
WarningLocalSymlink< int > local;
}
每个* _symlink.hpp都是一个符号链接,指向包含以下内容的标题:
#pragma once
template < typename T >
class Warning*Symlink
{
public:
Warning*Symlink()
{
init();
}
bool init()
{
// I will trigger a warning because of missing return!
}
};
有趣的是,全局符号链接标题并未显示警告。全局类位于另一个被编译为依赖项的cmake项目中。
是否有可能在全局符号链接标题中显示警告?
注意:
1)如果全局标题被复制而不是符号链接,那么一切都按预期工作。
2)使用本地符号链接标题,所有内容都可以正常工作。