gpt4 book ai didi

c++ - C++ 中用于将 wchar_t* 或 char* 分配给数组的模板方法

转载 作者:行者123 更新时间:2023-11-28 07:02:53 25 4
gpt4 key购买 nike

我有以下问题。我有一个模板方法,它接受一个普通或 long char* 数组,如下所示:

template <class myType>
static void createArray(const myType* (&MyArray)[10])

现在我想根据 myType 变量为这个数组赋值,该变量可以是 char*wchar_t。我创建了一个小方法来告诉我 myType 是否很长,以便我可以分配类型,如下所示:

MyArray[1] =  ( MyTemplate<myType>::isWide()) ? L"-1" : "-1";

不幸的是,我总是收到无法将 wchar_t 分配给 char 数组的错误,反之亦然。我不能使用字符串类。如果可能的话有什么想法吗?谢谢!

最佳答案

问题是在编译时,类型不匹配。这是你想要的技巧:

template <typename t>
struct x {
static t *c;
};

template<>
char *x<char>::c = "-1";
template<>
wchar_t *x<wchar_t>::c = L"-1";

关于c++ - C++ 中用于将 wchar_t* 或 char* 分配给数组的模板方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22175694/

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