在智能感知中从枚举中计算字符串常量
Evaluating string constants from enums in Intellisense
是否有一种方法可以根据枚举值获得智能感知来评估字符串常量?
这是我尝试过的:
#define MessageIdToName(ID)
(::MessageIdRange::LocalMessageStart <= ID && ID <= ::MessageIdRange::LocalMessageEnd) ?
("Local Message") :
(::MessageIdRange::CANMessageStart <= ID && ID <= ::MessageIdRange::CANMessageEnd) ?
("CANMessage") :
(::MessageIdRange::GlobalMessageStart <= ID && ID <= ::MessageIdRange::GlobalMessageEnd) ?
("Global Message") :
("Unknown")
namespace
{
static const char* MessageIdToNameFn(const uint32_t ID)
{
return
(::MessageIdRange::LocalMessageStart <= ID && ID <= ::MessageIdRange::LocalMessageEnd) ?
("Local Message") :
(::MessageIdRange::CANMessageStart <= ID && ID <= ::MessageIdRange::CANMessageEnd) ?
("CANMessage") :
(::MessageIdRange::GlobalMessageStart <= ID && ID <= ::MessageIdRange::GlobalMessageEnd) ?
("Global Message") :
("Unknown");
}
static const char* found = MessageIdToName(1025);
static const char* foundFn = MessageIdToNameFn(1025);
}
其中MessageIdRange是枚举,xMessageStart/End是枚举值。
我希望智能感知能够告诉我found和/或foundFn是什么。
似乎智能感知(在VS2013)不显示指针内容:
static const char* test = "test"; // Nothing for intelisense :-(
但是它显示了数组的内容:
static const char test2[] = "test"; // intelisense shows the content of test2 :-)
因此,如果您将static const char* found
更改为static const char found[]
,智能感知将显示found
的含量。
并且由于VS2013还不支持constexpr
,因此在编译时无法知道该函数的版本。
相关文章:
- 使用标准库计算字符串中的十进制数
- 如何计算字符串中用户输入元素的出现次数?
- 如何在 C++ 中计算字符串的算术运算
- 计算字符串中子字符串的出现次数
- 用于计算字符串中元音的函数
- 如何计算字符串 c++ 中的"xxx"数?
- 如何使用 c++ 中的 int* count(const string&s)计算字符串中每个数字的出现次数?
- 计算字符串中字符的出现次数时出错
- 如何计算字符串并将其存储在变量中
- 计算字符串S中所有数字的出现数量
- 在字符串网格中计算字符串短语
- 为什么我会在试图计算字符串字母的程序中遇到此错误
- 以 C++ 为单位计算字符串中的唯一单词
- 计算字符串中的元音数
- 如何计算字符串变量中的空格
- 无法让我的递归函数正确计算字符串中的字母(c ++)
- 使用C++计算字符串中字母数字单词数量的最有效方法
- tellp()计算字符串流长度的原理是什么
- 计算字符串中的多个字符
- 无法计算字符串中的字符