使用c++17std库varaint替代varaint开源库报错处理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、背景

c++17std库带有varaint方法,当前需要不使用第三方varaint开源库。

使用c++17std库varaint替代varaint开源库报错处理_第1张图片

 使用c++17std库varaint替代varaint开源库报错处理_第2张图片

二、处理 

在程序中将mpark::get替换成std::get

在vs将c++14改成c++17, 

使用c++17std库varaint替代varaint开源库报错处理_第3张图片

编译程序,报错如下

2.1报错1

 严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C4996    'std::codecvt_utf8_utf16': 
warning STL4017: std::wbuffer_convert, std::wstring_convert, and the header (containing std::codecvt_mode, std::codecvt_utf8, std::codecvt_utf16, and std::codecvt_utf8_utf16) are deprecated in C++17. 
(The std::codecvt class template is NOT deprecated.) The C++ Standard doesn't provide equivalent non-deprecated functionality; consider using MultiByteToWideChar() and WideCharToMultiByte() from instead. 
You can define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning.    poioverlay    
g:\compile-sdk\code\cplus\poioverlay\text\bidi.h    122    

百度查找资料,看到这个帖子:文本文件_如何在 C++17 中读取 UTF-16 文本文件__问答_IT常识

根据帖子所说,【 我也添加了错误,它说要使用MultiByteToWideChar() ,我已经按照教程尝试过,但无法让它工作】,所以我没有尝试使用MultiByteToWideChar(),而是使用_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING 

使用c++17std库varaint替代varaint开源库报错处理_第4张图片

增加预定义,编译无报错。 

报错2.2

error: ‘variant’ in namespace ‘std’ does not name a template type

note: ‘std::variant’ is only available from C++17 onwards

解决办法:std::variant是c++17才支持的。需要将std库标准改成c++17,至于为什么一直没有解决好,是因为没有找到正确的makefile文件,最后索性把所有的Makefile文件,改成C++17可以解决。


总结

例如:不知道后面会不会有人使用更优的方法。

你可能感兴趣的:(C++,c++,开发语言)