簡體   English   中英

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

[英]How can I find out if boost::any contains a literal string?

我有這個代碼

#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*";
    }
}

我應該使用if語句檢測"hello"或任何大小的文字字符串嗎?

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

字符串文字是const char數組。 boost::any存儲衰減類型,因此字符串文字將是const char*

注意,不能保證const char*是字符串文字。 它可以是指向任何字符的指針,而不僅僅是字符串文字的第一個字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM