gpt4 book ai didi

c++ - 我可以将 std::basic_string 用于非字符类型的东西吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:17:32 26 4
gpt4 key购买 nike

我的代码中有一个使用 std::basic_string<HANDLE> 的循环,然后像这样等待它:

DWORD dwWaitResult = WaitForMultipleObjects((DWORD)handles.size(),
handles.data(),
FALSE, POLL_INTERVAL_MS);

工作很好,但是当我打开/W4 和/analyze 时,Visual C++ 2008 会发出以下警告(为简洁起见,进行了删减和换行):

iosfwd(266) : warning C6001: Using uninitialized memory '*_First'
iosfwd(262) : while compiling class template member function
'HANDLE *std::char_traits<_Elem>::assign(_Elem *,size_t,_Elem)'
with [ _Elem=HANDLE ]
xstring(2155) : see reference to class template instantiation
'std::char_traits<_Elem>' being compiled
with [ _Elem=HANDLE ]
xstring(2148) : while compiling class template member function
'void std::basic_string<_Elem>::_Tidy(bool,unsigned int)'
with [ _Elem=HANDLE ]
.\MyCode.cpp(231) : see reference to class template instantiation
'std::basic_string<_Elem>' being compiled
with [ _Elem=HANDLE ]

iosfwd(222) : warning C6001: Using uninitialized memory '*_First1'
iosfwd(216) : while compiling class template member function
'HANDLE *std::char_traits<_Elem>::_Copy_s
(_Elem *,size_t,const _Elem *,size_t)'
with [ _Elem=HANDLE ]

问题:

  1. 将 std::basic_string 与非简单字符类型(即 charwchar_t )一起使用是否合法?
  2. 如果是,我应该怎么做才能摆脱这些警告?接听#pragma warning(disable)需要理由。
  3. 如果不是,为什么不呢?我应该改用什么?

考虑到 Boost 已经过时,并且我们仅限于 Visual C++ 2008 中的 STL 实现,将给予额外的奖励;允许 TR1 的 Visual C++ 位。

最佳答案

使用 std::vector 而不是尝试将方钉塞入圆孔有什么问题?

关于c++ - 我可以将 std::basic_string 用于非字符类型的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1872714/

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