style. 使用宏优化编码

This commit is contained in:
lhhxxxxx
2022-08-02 00:03:41 +08:00
parent d137beef25
commit 8f23c2ae16
4 changed files with 32 additions and 36 deletions

View File

@@ -31,3 +31,20 @@ ASST_DO_PRAGMA(GCC diagnostic pop)
#define ASST_SUPPRESS_CV_WARNINGS_START
#define ASST_SUPPRESS_CV_WARNINGS_END
#endif
#ifdef __GNUC__
#define ASST_AUTO_DEDUCED_ZERO_INIT_START \
ASST_DO_PRAGMA(GCC diagnostic push) \
ASST_DO_PRAGMA(GCC diagnostic ignored "-Wmissing-field-initializers")
#define ASST_AUTO_DEDUCED_ZERO_INIT_END \
ASST_DO_PRAGMA(GCC diagnostic pop)
#elif defined(__clang__)
#define ASST_AUTO_DEDUCED_ZERO_INIT_START \
ASST_DO_PRAGMA(clang diagnostic push) \
ASST_DO_PRAGMA(clang diagnostic ignored "-Wmissing-field-initializers")
#define ASST_AUTO_DEDUCED_ZERO_INIT_END \
ASST_DO_PRAGMA(clang diagnostic pop)
#else
#define ASST_AUTO_DEDUCED_ZERO_INIT_START
#define ASST_AUTO_DEDUCED_ZERO_INIT_END
#endif

View File

@@ -1,5 +1,7 @@
#pragma once
#include "AsstConf.h"
#include <fstream>
#include <sstream>
#include <string>
@@ -201,15 +203,9 @@ namespace asst::utils
auto pipe_buffer = std::make_unique<char[]>(PipeBuffSize);
#ifdef _WIN32
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
ASST_AUTO_DEDUCED_ZERO_INIT_START
SECURITY_ATTRIBUTES pipe_sec_attr = { 0 };
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
ASST_AUTO_DEDUCED_ZERO_INIT_END
pipe_sec_attr.nLength = sizeof(SECURITY_ATTRIBUTES);
pipe_sec_attr.lpSecurityDescriptor = nullptr;
pipe_sec_attr.bInheritHandle = TRUE;
@@ -217,28 +213,18 @@ namespace asst::utils
HANDLE pipe_child_write = nullptr;
CreatePipe(&pipe_read, &pipe_child_write, &pipe_sec_attr, PipeBuffSize);
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
ASST_AUTO_DEDUCED_ZERO_INIT_START
STARTUPINFOA si = { 0 };
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
ASST_AUTO_DEDUCED_ZERO_INIT_END
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESTDHANDLES;
si.wShowWindow = SW_HIDE;
si.hStdOutput = pipe_child_write;
si.hStdError = pipe_child_write;
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
ASST_AUTO_DEDUCED_ZERO_INIT_START
PROCESS_INFORMATION pi = { nullptr };
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
ASST_AUTO_DEDUCED_ZERO_INIT_END
BOOL p_ret = CreateProcessA(nullptr, const_cast<LPSTR>(cmdline.c_str()), nullptr, nullptr, TRUE, CREATE_NO_WINDOW, nullptr, nullptr, &si, &pi);
if (p_ret) {

View File

@@ -1,3 +1,4 @@
#include "AsstConf.h"
#include "Controller.h"
#ifdef _WIN32
@@ -261,14 +262,9 @@ std::optional<std::vector<uchar>> asst::Controller::call_command(const std::stri
#ifdef _WIN32
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
ASST_AUTO_DEDUCED_ZERO_INIT_START
PROCESS_INFORMATION process_info = { nullptr }; // 进程信息结构体
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
ASST_AUTO_DEDUCED_ZERO_INIT_END
BOOL create_ret = CreateProcessA(nullptr, const_cast<LPSTR>(cmd.c_str()), nullptr, nullptr, TRUE, CREATE_NO_WINDOW, nullptr, nullptr, &m_child_startup_info, &process_info);
if (!create_ret) {

View File

@@ -1,5 +1,7 @@
#pragma once
#include "AsstConf.h"
#include <optional>
#include <random>
#include <string>
@@ -101,19 +103,14 @@ namespace asst
HANDLE m_pipe_child_read = nullptr; // 子进程的读管道句柄
HANDLE m_pipe_child_write = nullptr; // 子进程的写管道句柄
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
ASST_AUTO_DEDUCED_ZERO_INIT_START
SECURITY_ATTRIBUTES m_pipe_sec_attr = { 0 }; // 管道安全描述符
STARTUPINFOA m_child_startup_info = { 0 }; // 子进程启动信息
WSADATA m_wsa_data = { 0 };
SOCKET m_server_sock = 0ULL;
sockaddr_in m_server_addr = { 0 };
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
ASST_AUTO_DEDUCED_ZERO_INIT_END
#else
constexpr static int PIPE_READ = 0;