首页 > 解决方案 > Xor Template Visual Studio INTELLISENSE 错误

问题描述

我正在使用这个xor模板来混淆一些字符串,代码正在编译和工作,但是,IntelliSense 在控制台中抛出了很多“错误”:

    #include <algorithm>
    #include <string>
    
    template<std::size_t N, class T = std::string>
    struct BaseXorString {
        using string_type = T;
        using char_type = string_type::value_type;
    
        char_type encrypted[N]{};
    
        static constexpr unsigned char key = 0xa4;
    
        constexpr BaseXorString(const char_type (&str)[N]) {
            for (int i = 0; i < N; ++i) {
                encrypted[i] = str[i] ^ key;
            }
        };
    
        string_type decrypt() const {
            string_type str(encrypted, N);
            std::ranges::for_each(str, [&](char_type& c) { c ^= key; });
            return str;
        }
    };
    
    template<std::size_t N>
    using XorString = BaseXorString<N, std::string>;
    
    template<XorString Str>
    constexpr auto operator"" _xorStr() {
        return Str;
    }



constexpr auto xurl  = "http://..."_xorStr;
std::string url  = xurl.decrypt();

线:template<XorString Str>

缺少别名模板“XorString”的错误(活动)E0441 参数列表

线:constexpr auto operator"" _xorStr() {

错误(活动) E2500 文字运算符模板必须具有等效于 '<char ...> 的模板参数列表

线:constexpr auto xurl = "http://..."_xorStr;

错误(活动) E2486 未找到用户定义的文字运算符

(c++20 Windows/Visual Studio 19)

什么不见​​了?

标签: c++windowsencryptionc++20xor

解决方案


推荐阅读