ReSharper根据文件的使用方式分析依赖关系-如何禁用
ReSharper analyze dependencies based on how file used - how to disable
Resharper分析C++代码并标记尚未导入的类/函数。此外,Resharper建议导入带有类/函数声明的文件。
其中一个问题是,Resharper不是单独分析每个文件,而是考虑到该文件的使用方式。
示例:
test1.h
#pragma once
boost::filesystem::path path1;
通常这个文件是不可编译的-类boost::filesystem::path
是未知的,我们需要导入它#include <boost/filesystem/path.hpp>
但我们有第二个文件:
test2.h
#pragma once
#include <boost/filesystem/path.hpp>
#include "test1.h"
boost::filesystem::path path2;
现在一切都是可编译的,因为test1.h
之前包含的boost::filesystem::path
和Resharper停止将test1.h
中的boost::filesystem::path
标记为未知。但这并不好——如果我们试图在未导入boost::filesystem::path
的不同位置使用test1.h
,就会出现错误。
我需要Resharper仅基于该文件中的#import
命令来分析每个文件的依赖关系。如何设置?
有时,标头只有在包含它的.cpp文件的上下文中才有意义(例如,当使用预编译的标头时,或者当标头隐含地依赖于其他标头时),因此要解析和分析文件,R++必须找到相应的.cpp文件,并对其进行处理,直到达到所需的标头。所有分析,包括自动导入功能,都使用作为结果构建的抽象语法树,这是您描述的行为的原因。
对于许多只是.cpp文件接口的标头,最好将标头作为.cpp文件中包含的第一个文件。在这种情况下,R++将选择它作为解析的上下文,您将获得所需的自动导入行为。
如果这对您的项目有效,那么添加一个选项来解析标头可能是可行的,就好像它们是独立的文件一样。如果您希望实现此选项,请在R++的问题跟踪器中创建一个请求。
- C++GTKMM gui循环依赖关系
- 如何在头文件中声明类模板(由于循环依赖关系)
- 对在不同二进制文件中创建的对象文件的依赖关系
- 使用Bazel构建具有不同编译器/链接器选项的C/C++依赖关系
- OpenVINO - 推理库插件 libMKLDNNPlugin.so 无法解析依赖关系
- 模拟测试中类的依赖关系
- C++模板方法中的循环依赖关系
- 解析正交模块的依赖关系
- 如何在 Mac OS 上安装 boost-mpi 及其对 clang 的依赖关系?
- Wt::D bo 中的循环依赖关系
- 在包含窗口标头时难以解决循环依赖关系问题
- 当依赖关系和依赖关系都是多态时,在哪个继承级别存储依赖关系指针?
- 解决循环依赖关系 c++ 的想法
- C++循环依赖关系,未声明的标识符
- C++ 中的循环依赖关系问题
- 为什么包含需要进一步的依赖关系?
- 使用 cmake 获取外部依赖关系
- CMake 外部和内部静态库的循环依赖关系
- 在没有Xcode的macOS中开发具有依赖关系的应用程序
- "std::shared_ptr"循环依赖关系是如何导致问题的