从“const char [N]”类型转换为cpp中的自定义类

时间:2017-10-20 10:08:21

标签: c++ linux casting uwp

在编译跨平台代码时我遇到了c风格的演员,当我为UWP编译时会出现问题,但是当我从Visual Studio远程编译到运行Linux的Raspberry时它会起作用。

我只想写这个(简化为最小问题再现):

MyClass str = (MyClass) "A beautiful const char[27]";

编译器在为UWP运行时抛出此错误:

error C2440: 'type cast': cannot convert from 'const char [27]' to 'MyClass' 
note: Conversion requires a constructor or user-defined-conversion operator, which can't be used by const_cast or reinterpret_cast

我不明白“MyClass”中缺少什么,而且它适用于Linux。

以下是MyClass定义的摘录:

class MyClass{

    public:

        template<size_t N>
        inline MyClass(const char(&s)[N]) { } //I do something in real life ;-)
}

如何让编译器找到一个好的转换解决方案呢?

经过一些研究后编辑:

正如我在评论中所述,问题最终没有链接到

template<size_t N>
inline MyClass(const char(&s)[N]){}

这个构造函数按原样工作,我的问题在UWP代码中更深入,我会写另一个问题,因为它离这个原始问题和标题太远了。

再次感谢您的帮助

0 个答案:

没有答案