std::get_temporary_buffer
返回一个dim SOAPClient
set SOAPClient = createobject("MSSOAP.SOAPClient")
,其ä¸åŒ…å«æŒ‡å‘已分é…å˜å‚¨çš„开头和分é…的对象数的指针,其对应的唯一目的:std::return_temporary_buffer
是释放内å˜ä¹‹å‰å·²åˆ†é…std::pair
。
这两个函数都ä½äºŽstd::get_temporary_buffer
æ ‡é¢˜ä¸Šï¼Œå…¶ä¸»è¦ç›®çš„是æ供增强内å˜ç®¡ç†çš„工具(顾åæ€ä¹‰ï¼‰å¹¶ä½¿å†…å˜ç®¡ç†æ›´å®‰å…¨ã€‚
关于内å˜ç®¡ç†çš„安全性,<memory>
æ ‡å¤´è¿˜æ供了智能指针实用程åºï¼Œå®ƒå…许以RAIIæ–¹å¼ç®¡ç†å†…å˜ï¼Œä»Žè€Œä½¿å†…å˜ç®¡ç†å¼‚常安全。< / p>
C ++ 14è¿˜æ·»åŠ äº†std::make_unique
è¾…åŠ©å‡½æ•°ï¼Œå› æ¤æˆ‘们现在å¯ä»¥é¿å…在许多情况下使用原始指针。
通过所有这些努力å‡å°‘原始指针的使用,实现<memory>
返回原始指针而ä¸æ˜¯æ™ºèƒ½æŒ‡é’ˆæ˜¯éžå¸¸ä»¤äººå›°æƒ‘的。这就是为什么我想问:
std::get_temporary_buffer
是å¦æœ‰ç†ç”±è¿”回原始指针而ä¸æ˜¯è¿”回智能指针?ç”案 0 :(得分:6)
简å•çš„ç”案是std::get_temporary_buffer
æ˜¯åœ¨æ™ºèƒ½æŒ‡é’ˆæ ‡å‡†åŒ–ä¹‹å‰åˆ›å»ºçš„,而在C ++ 11ä¸æ›´æ”¹std::get_temporary_buffer
çš„è¿”å›žå€¼ä¼šç ´åä¾èµ–它的代ç ,这是ç»å¯¹ä¸å¯æŽ¥å—的对于C ++æ ‡å‡†åº“ã€‚
çŽ°åœ¨ï¼Œä»–ä»¬ä¸ºä»€ä¹ˆæ²¡æœ‰æ ‡å‡†åŒ–æ–°çš„æ™ºèƒ½æŒ‡é’ˆï¼Ÿ
好å§ï¼Œä¹Ÿè®¸æ²¡æœ‰äººå¯¹æ‹¥æœ‰å®ƒæ„Ÿå…´è¶£ã€‚就个人而言,我å‘现有一个智能指针拥有许多对象是很奇怪的。如果您需è¦æ™ºèƒ½é˜µåˆ—,请使用std::vector
。
ç”案 1 :(得分:3)
å¦‚æžœä½ æŸ¥çœ‹get_temporary_buffer
ç‰äººçš„æ—§SGI STL实现的文档,他们会说......
 Â注æ„:
get_temporary_buffer
å’Œreturn_temporary_buffer
仅用于å‘åŽå…¼å®¹ã€‚如果您æ£åœ¨ç¼–写新代ç ,则应使用temporary_buffer
类。
这有效地承认了更好的自动化管ç†çš„å¯å–性。 GCCæ·»åŠ äº†temporary_buffer
作为扩展å(请å‚阅hereï¼‰ï¼Œä½†å®ƒä»Žæœªè¿›å…¥æ ‡å‡†ç‰ˆã€‚å®ƒçš„é•¿çŸä¸æ˜¯å› 为它ä¸é‚£ä¹ˆæœ‰ç”¨ï¼Œæ‰€ä»¥æ‹¥æœ‰æ›´å¥½çš„ç•Œé¢ä¸ä¼šæˆä¸ºä¼˜å…ˆäº‹é¡¹ã€‚æ“作系统的整个概念是在é¢å¯¹å¤§å¤šæ•°çŽ°ä»£æ“作系统使用的ä¹è§‚内å˜åˆ†é…ç–略时,是å¦åº”该为您æ供所有请求的内å˜æˆ–一些较å°æ•°é‡çš„è‹è‡ï¼Œå¹¶ä¸”一旦您获得多个呼å«è¯·æ±‚超过容易获得的记忆,对第一个过于慷慨让其他人有点饿æ»ï¼šåªæ˜¯ä¸æ˜¯ä¸€ä¸ªéžå¸¸å®žç”¨çš„概念。
如果您关心,å¯ä»¥ä¸ºä»¥åŽçš„C ++æ ‡å‡†æ交æ案....