gpt4 book ai didi

C++ 使用模板 boost lexical_cast?

转载 作者:行者123 更新时间:2023-11-30 00:40:18 25 4
gpt4 key购买 nike

我正在尝试构建一个将程序设置存储为 std::map 的类。由于所有程序设置都存储为字符串,因此我想要一个可以返回转换为相关类型的程序设置的访问器方法。我刚接触 C++ 模板,这是我的第一次尝试:

class Settings
{
public:
Settings(void);
virtual ~Settings(void);

enum SettingName {HomePageUrl, WindowWidth};

template<class T>
T Get(SettingName name)
{
return boost::lexical_cast<T>(settings_[name]);
}

template<class T>
void Set(SettingName name, T value)
{
settings_[name] = boost::lexical_cast<CString>(value);
}

private:
std::map<SettingName, CString> settings_;

};

但是,我遇到编译器错误:

...boost\boost_1_46_1\boost\lexical_cast.hpp(776): error C2678: binary '>>' :
no operator found which takes a left-hand operand of type
'std::basic_istream<_Elem,_Traits>' (or there is no acceptable conversion)

..settings.h(33) : see reference to function template instantiation
'Target boost::lexical_cast<CString,T>(const Source &)' being compiled

使用 boost 时,错误输出很长,我不太确定它出了什么问题。

最佳答案

CString 没有任何运算符<<考虑使用 std::string

关于C++ 使用模板 boost lexical_cast?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6391844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com