c++ - 在编译时初始化标准向量
问题描述
我正在运行以下代码,但我现在如何用它初始化向量或变量。
constexpr uint32_t _RtlComputeCrc32(
_In_ DWORD dwInitial,
_In_reads_bytes_(stLength) const BYTE *pbyData,
_In_ INT stLength
)
{
ULONG crc = 0xFFFFFFFF;
while (stLength-- != 0)
{
pbyData++;
// crc = ((crc >> 8) & 0x00FFFFFF) ^ crc32_table[(crc ^ *(pbyData++)) & 0x000000FF];
}
return crc ^ 0xFFFFFFFF;
}
constexpr uint32_t crccalc(const std::wstring_view field)
{
return _RtlComputeCrc32(0, (BYTE*)field.data(), (INT)field.size() * sizeof(wchar_t));
}
template<const wchar_t* T >
struct crcfield
{
//static constexpr const std::wstring_view sname = T;
static constexpr const uint32_t field = crccalc(T);
};
struct Field
{
std::wstring_view namee;
static const uint32_t crcfield;
};
如果我现在想要一个静态变量,它必须是这样的:
static constexpr const wchar_t *namee = _T("test");
auto f = crcfield**<???>;**
例如,如果我执行以下操作:
auto f = crcfield<_T("t")>;
我得到错误:
error C2762: 'crcfield': invalid expression as a template argument for 'T'
解决方案
推荐阅读
- c - 为什么使用 getchar 输入时 putchar 不返回新行?
- openssl - .cert 中的 OpenSSL 主题与 .csr 不同
- javascript - 用block语句提升javascript
- node.js - Webpack“找不到模块:错误:无法解析'../webfonts/fa-solid-900.eot'”
- sql - 解决错误操作数时遇到问题应包含 1 列
- android - 如何使用 Retrofit 从 API REST 获得更快的响应
- r - 是否有任何 R 方法可以创建为附加的 GIF?
- javascript - 如何使用 .delay(x).animate({'opacity':'1'},x); 淡化每个不透明度为 0 的内部元素?
- vue.js - Quasar框架和Vuetify如何集成?
- java - 在 Java 中,如何在 jframe 组件之间传递变量和列表