如何确定boost :: any是否包含文字字符串?

时间:2019-07-10 16:02:14

标签: c++ boost

我有这个代码

t = (1, 2)

我应该使用什么(a, b) = (1, 2)语句来检测#include <boost/any.hpp> std::vector<boost::any> a( {1,2,3,"hello",3.0}); for (int i = 0; i < a.size();i++) { if (a[i].type() == typeid(int)) // this works { std::cout << "int"; } if (a[i].type() == typeid(char*)) // this does not work I know why { std::cout << "char*"; } } 或任何大小的文字字符串?

1 个答案:

答案 0 :(得分:3)

  

我如何找出Boost中是否包含文字字符串?

字符串文字是const char的数组。 boost::any存储衰减的类型,因此字符串文字将是const char*

请注意,不能保证const char*是字符串文字。它可以是指向任何字符的指针,而不仅仅是字符串文字的第一个字符。

相关问题