问题解决——warning C4503 超出修饰名的长度,名称被截断

========================声明============================

本文原创,转载请注明作者和出处,并保证文章的完整性(包括本声明)。

本文不定期修改完善,为保证内容正确,建议移步原文处阅读。

本文链接:http://blog.csdn.net/wlsgzl/article/details/42236503

=======================================================

领导要实现“以后支持各种检测项目”的功能,这分明就是在坑我。

上个月的代码算是废了,重新写起。

=======================================================

我需要实现一个存储检测标准的东西,支持“不确定的检测项目名、不确定的组成子项名、不确定的子项数目、不确定的子项梯度检测结果”,——感觉就是扔给你一个复合项目的说明书,能把说明书上标注的结果存起来,方便以后使用。

比方说呼吸道七项检测,每一个检测子项的每一种结果都要保存。

=======================================================

想了一会儿(这是个虚词),写了个模型小代码。

搞了类CProjInfo,里面有这么个东西:

std::multimap<CString,std::map<CString,std::map<LONG,CString>>> m_mmmmPI;

虽然不是很好看,但也得先看看这个思路行不行再优化。

=======================================================

编译链接,遇到了警告。

warning C4503 超出修饰名的长度,名称被截断

作为一个使用Level4编译、Ctrl+atl+E里都选中的男人,必须把这弄个明白,于是找资料。

=======================================================

找资料是个技术活,主要是看关键词的提炼。

很轻松的,找到了官方文档。

Compiler Warning (level 1) C4503

http://msdn.microsoft.com/en-us/library/074af4b6.aspx

=======================================================

文章以后再翻译,一看就懂,这里只引用一下微软的代码:

含C4503警告的代码:

// C4503.cpp
// compile with: /W1 /EHsc /c
// C4503 expected
#include <string>
#include <map>

class Field{};

typedef std::map<std::string, Field> Screen;
typedef std::map<std::string, Screen> WebApp;
typedef std::map<std::string, WebApp> WebAppTest;
typedef std::map<std::string, WebAppTest> Hello;
Hello MyWAT;

一种解决方案:

// C4503b.cpp
// compile with: /W1 /EHsc /c
#include <string>
#include <map>

class Field{};
struct Screen2 {
   std::map<std::string, Field> Element;
};

struct WebApp2 {
   std::map<std::string, Screen2> Element;
};

struct WebAppTest2 {
   std::map<std::string, WebApp2> Element;
};

struct Hello2 {
   std::map<std::string, WebAppTest2> Element;
};

Hello2 MyWAT2;

=======================传播点正能量==========================

积累,从点滴做起。俗话说得好,“千里之堤,溃于蚁穴”。

你可能要问,不是应该“千里之行,始于足下”吗?

是的,虽然你知道,但你做到了吗?

========================我反正不知道=========================

时间: 2024-11-08 22:42:58

问题解决——warning C4503 超出修饰名的长度,名称被截断的相关文章

Android Java 与 C++ 调用过程中的常量,路径名、文件名、后缀名最大长度

/**************************************************************************** **************************************************************************** *** ***   This header was automatically generated from a Linux kernel header ***   of the same

读取 XML 数据时,超出最大字符串内容长度配额 (8192)

问题描述,在调用接口报错: 格式化程序尝试对消息反序列化时引发异常:  尝试对参数 http://tempuri.org/ 进行反序列化时出错: GetRechargeInfoListResponse.InnerException 消息是“反序列化对象 属于类型 ServiceReference.GetRechargeInfoListResponseBody 时出现错误.读取 XML 数据时,超出最大字符串内容长度配额 (8192).通过更改在创建 XML 读取器时所使用的 XmlDiction

linux下c++filter查看函数修饰名

c++函数在linux系统下编译之后会变成类似下面的样子: _ZNK4Json5ValueixEPKc 在linux命令行使用c++filter: [email protected]:~ $ c++filt _ZNK4Json5ValueixEPKc Json::Value::operator[](char const*) const 这样就得到函数的原始名称 如果没有安装c++filter, 可以自行搜索.linux下c++filter查看函数修饰名,布布扣,bubuko.com

Web Service 或 WCF调用时读取 XML 数据时,超出最大字符串内容长度配额(8192)解决方法

1.调用服务时服务 当我们使用 Web Service 或 WCF 服务时,常把读取的数据转化为string类型(xml格式),当数据量达到一 定数量时,会出现以下异常: 错误:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ (命名空间)进行反序列化时出错: InnerException 消息是“反序列化对象异常,读取 XML 数据时,超出最大字符串内容长度配额 (8192).通过更改在创建 XML 读取器时所使用的 XmlDictionaryRea

oracle的表名、字段名、constraint名的长度限制分别是多少?

文章出处:http://blog.csdn.net/haiross/article/details/38379615 1 Oracle:表名.字段名.constraint名的长度有限制 2 3 oracle 的命名规则: 4 1.要以字母开头 5 2.包含字母和数字,以及# $ 6 3.不能超过30个字符 7 8 这是Oracle的限制! 9 10 数据库 表名列名长度限制问题 11 今天修改数据库表名,感觉现有的定义列名都无含义...修改后被同事告知,列名有点长,怕有的数据库不支持.. 12

黑马基础阶段测试题:提示用户输入账户名, 账户名要求长度需大于5,且以字母开头。若不合要求,则提示用户重新输入,直至输入的账户名符合要求为止。

代码: package com.swift; import java.util.Scanner; public class XunhuanLogin { public static void main(String[] args) { /* * 提示用户输入账户名, 账户名要求长度需大于5,且以字母开头.若不合要求,则提示用户重新输入,直至输入的账户名符合要求为止. */ String name; boolean flag=false; Scanner scan=new Scanner(Syst

关于权限模块的命名,模块名,数据库名称必须有@前缀吗?

1.为什么模块名必须有@前缀? 因为为了统一模块的方法,如果有模块名前缀为@,则系统会到系统自带的自带的内部数据库(AM.dat)中 得到模块的配置信息. 所以为了区别于其他标准模块,模块名必须使用前缀名@ 2.在内部数据库AM.dat中,需要特殊的命名吗? 应该不需要. 这里面应该主要有这几个表:modulefields modulerelations 所以不需要特殊命名. 3.在系统数据库中,system.dat或者mysql,mssql的数据库中,和权限相关的表,需要增加特殊前缀吗 ? 应

mysql中修改表字段名/字段长度/字段类型详解

先来看看常用的方法 MySql的简单语法,常用,却不容易记住.当然,这些Sql语法在各数据库中基本通用.下面列出: 1.增加一个字段 alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; //增加一个字段,默认为空alter table user add COLUMN new2 VARCHAR(20) NOT NULL; //增加一个字段,默认不能为空 2.删除一个字段 alter table user DROP COLUMN ne

php-fpm: 某项目网站频繁出现503问题解决( WARNING: [pool www] server reached pm.max_children setting (50), consider raising it)

服务是nginx+php-fpm配置, 在运行过一段时间后,会经常出现: WARNING: [pool www] server reached pm.max_children setting (50), consider raising it 子进程达到最大数量,需要提供子进程数 503/502一般是因为服务器维护或者过载,近期服务器并未进行维护,查询监控记录发现负载也不是很高,猜测是不是服务器对项目的某些配置产生了限制,查看nginx,php日志发现: 找到php-fpm.conf 文件 ,查