让 ReSharper 使用 m_ 约定
Making ReSharper use m_ convention
我将 ReSharper C++ 与 Visual Studio 一起使用,但它使用了一些我不喜欢的奇怪的命名约定。我想使用 this convention,它在 class 成员变量和 snake case 上使用 m_
前缀。他们说 .clang-format
可以使用,但我没有使用 LLVM,而是 VS 的编译器。
是否有人根据这些约定制作了文件?很确定大多数人都在使用它们。
#ifndef RESOURCE_CLONER_HPP
#define RESOURCE_CLONER_HPP
#include <Windows.h>
#include <algorithm>
#include <stdexcept>
#include <string_view>
namespace resource_cloner
{
class resource_cloner
{
public:
resource_cloner() = default;
resource_cloner(const resource_cloner&) = delete;
resource_cloner(resource_cloner&& obj) noexcept
{
*this = std::move(obj);
}
~resource_cloner()
{
unload();
}
resource_cloner& operator=(const resource_cloner&) = delete;
resource_cloner& operator=(resource_cloner&& rhs) noexcept
{
m_source_path = rhs.m_source_path;
return *this;
}
void load()
{
m_module = LoadLibraryExW(m_source_path.data(), nullptr, LOAD_LIBRARY_AS_DATAFILE);
if (!m_module)
{
throw std::runtime_error("Could not open source file.");
}
}
void unload() const
{
if (m_module)
{
FreeLibrary(m_module);
}
}
private:
std::wstring_view m_source_path;
HMODULE m_module{ nullptr };
};
}
#endif
您可以在“ReSharper | 选项 | 代码编辑 | C++ | 命名样式”选项页面上配置命名约定,或选择一种预定义方案。也就是说,同时使用“m_”作为 class 成员前缀和“t_”作为参数名称前缀是不寻常的,none 的主要 C++ 风格指南使用此约定。
我将 ReSharper C++ 与 Visual Studio 一起使用,但它使用了一些我不喜欢的奇怪的命名约定。我想使用 this convention,它在 class 成员变量和 snake case 上使用 m_
前缀。他们说 .clang-format
可以使用,但我没有使用 LLVM,而是 VS 的编译器。
是否有人根据这些约定制作了文件?很确定大多数人都在使用它们。
#ifndef RESOURCE_CLONER_HPP
#define RESOURCE_CLONER_HPP
#include <Windows.h>
#include <algorithm>
#include <stdexcept>
#include <string_view>
namespace resource_cloner
{
class resource_cloner
{
public:
resource_cloner() = default;
resource_cloner(const resource_cloner&) = delete;
resource_cloner(resource_cloner&& obj) noexcept
{
*this = std::move(obj);
}
~resource_cloner()
{
unload();
}
resource_cloner& operator=(const resource_cloner&) = delete;
resource_cloner& operator=(resource_cloner&& rhs) noexcept
{
m_source_path = rhs.m_source_path;
return *this;
}
void load()
{
m_module = LoadLibraryExW(m_source_path.data(), nullptr, LOAD_LIBRARY_AS_DATAFILE);
if (!m_module)
{
throw std::runtime_error("Could not open source file.");
}
}
void unload() const
{
if (m_module)
{
FreeLibrary(m_module);
}
}
private:
std::wstring_view m_source_path;
HMODULE m_module{ nullptr };
};
}
#endif
您可以在“ReSharper | 选项 | 代码编辑 | C++ | 命名样式”选项页面上配置命名约定,或选择一种预定义方案。也就是说,同时使用“m_”作为 class 成员前缀和“t_”作为参数名称前缀是不寻常的,none 的主要 C++ 风格指南使用此约定。