C++ 编译报错discards qualifiers [-fpermissive]
声明了一个类
class Card
{
public:
Card(const string&);
int m_value;
char m_suit;
private:
const static map<char, int> m_map;
};
const map<char, int> Card::m_map=
{
{'2', 2},
{'3', 3},
{'4', 4},
{'5', 5},
{'6', 6},
{'7', 7},
{'8', 8},
{'9', 9},
{'T', 10},
{'J', 11},
{'Q', 12},
{'K', 13},
{'A', 14}
};
Card::Card( const string& p_cardVal)
{
//m_value = Card::m_map[(p_cardVal[0]];
m_value = Card::m_map.at(p_cardVal[0]);
m_suit = p_cardVal[1];
}
红线部分会报错,显示error: passing ‘const std::map<char, int>’ as ‘this’ argument discards qualifiers [-fpermissive]
查看CPP reference 可以知道,map的[],都是非const 的,而m_map是const的对象,于是会报错。(见http://blog.csdn.net/xidwong/article/details/52754514)
在map的成员函数中,at成员函数
这个fpermissive 编译选项 千万不可以强制加上, 否则即使编译通过,运行结果可能和预期的有很大的区别。甚至会引起crash!!!!!!
C++ 编译报错discards qualifiers [-fpermissive]相关推荐
- C++ STL编译报错:error: error passing 'const' as 'this' argument
用C++ STL(标准模板库)编写仿函数的时候,编译报错: error: passing 'const FindNameOrAddress' as 'this' argument of 'bool F ...
- go build 编译报错 missing go.sum entry for module providing package
go build 编译报错 missing go.sum entry for module providing package 解决方法 // 移除未使用的依赖 go mod tidy 再次编译,就可 ...
- 编译报错field has incomplete type
linux下编译C++代码报错,报错信息"field has incomplete type".这种问题一般都是在头文件对类或者结构体进行了前向声明,后面使用了该类定义了对象,导致 ...
- Eclipse中更改JDK版本,解决ant编译报错的问题
要改一个JDK版本 主要是为了解决ant编译报错,JDK版本不一致的问题. 1. Windows--Preferences--Java--Compiler(配置的为1.8)--Installed JR ...
- idea java编译报错_intellij-idea,java_idea 编译报错,intellij-idea,java - phpStudy
idea 编译报错 简单的 helloworld 竟然坑了我一天啦 /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/bi ...
- 新的ipad,用xcode编译报错 dyld_shared_cache_extract_dylibs
删掉 ~/Library/Developer/Xcode/iOS DeviceSupport/ 这个目录下的特定文件夹就行啦. 其实是因为 device is busy 生成文件夹过程中拔掉了设 ...
- cordova编译报错:Execution failed for task ':processDebugResources'
cordova编译报错:Execution failed for task ':processDebugResources' 引发这个错误的最扩祸首就是一个中文命名的文件,不知道什么时候加入的,我写了 ...
- Android 编译报错:Could not get resource
编译报错: Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'. Could not d ...
- AS升级3.1 编译报错:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin.
AndroidStudio升级到3.1后编译报错:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plug ...
- AS升级编译报错:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin....
AS升级3.2.0 编译报错:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin. 解决方法:将 ...
最新文章
- C++中的final关键字
- 2022-2027年中国PPR管材行业发展态势及市场需求分析报告
- jeesite快速开发平台(三)----项目文件结构与配置文件详解
- Python多线程详解
- Unity3D对手机屏幕触摸的控制脚本
- 转-Kafka【第一篇】Kafka集群搭建
- 前端学习(3068):vue+element今日头条管理-日期处理
- 重装Nodejs后,webstorm代码报错问题
- LeetCode 1598. 文件夹操作日志搜集器
- 异常处理、集合框架和反射
- html编辑器后怎么使用,html在线编辑器怎么用
- nginx的web基础
- 读取usb接口数据_笔记本接口不够?无须担心!小米分线器开箱初体验
- 数据算法_数据结构和常用算法
- 微软雅黑字体的bug,可能不是我第一个发现的
- 人月神话(四)削足适履、提纲挈领、未雨绸缪
- Pycharm常用快捷键大全【快查字典版】
- mysql partition 语法,MySQL与瀚高数据库的范围分区的语法及实例(APP)
- 硬件产品经理 硬件职业理解 第二弹
- SQL server 数据库 修改学生数据表
热门文章
- 软件测试基础知识【纯知识分享】
- Form 电子表格(JTF GRID)
- 关闭appleid双重认证_如何查看并移除登陆过Apple ID的设备
- 偶像生于1964:马云、张朝阳、求伯君的激荡人生
- OVNOVS代码下载、编译安装以及运行步骤
- html摄氏度转换华氏度,摄氏和华氏转换器-JavaScript
- 基于Node.js+Electron+CPP(DLL)的Windows桌面应用程序(自助终端)开发简介
- 计算机与现代社会英语作文,高一英语作文,科技以下是题目:众所周知,科技在现代社会和生活中扮演着越来越重要的角色,但科技同时也是一把双刃剑,在它璀璨...
- VBA 字典使用小结:关键字循环
- android锁屏密码忘了,安卓手机锁屏密码忘记了怎么办