当前位置:  开发笔记 > 编程语言 > 正文

是否可以用C++编写自定义转换操作符(如`static_cast`)?

如何解决《是否可以用C++编写自定义转换操作符(如`static_cast`)?》经验,为你挑选了1个好方法。

我得到了这个想法并尝试编写一个string_cast转换运算符来在C++字符串之间进行转换.

template 
class string_cast
{
    public:
        template 
        operator std::basic_string(const std::basic_string & InputString)
        {
            std::basic_string OutputString;
            const std::basic_string::size_type LENGTH = InputString.length();
            OutputString.resize(LENGTH);
            for (std::basic_string::size_type i=0; i(OutputString[i]);
            }
            return OutputString;
        }
};

我试着像这样使用它:

std::string AString("Hello world!");
std::cout  << AString << std::endl;
std::wcout << string_cast(AString) << std::endl; // ERROR

错误消息是:

Error   C2440   '': cannot convert from
'const std::string' to 'string_cast'

这在C++中是不可能的,还是我在代码中遗漏了一些东西?



1> Jarod42..:

您可以使用签名编写免费功能:

template 
std::basic_string
string_cast(const std::basic_string& InputString)

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有