다음 코드 등장 : :: 새로운 의미는 무엇입니까? 는 MS 다이렉트 X 11 DXUT의 예를 살펴보면
template<typename TYPE> HRESULT CGrowableArray <TYPE>::SetSize(int nNewMaxSize)
{
int nOldSize = m_nSize;
if(nOldSize > nNewMaxSize)
{
assert(m_pData);
if(m_pData)
{
// Removing elements. Call dtor.
for(int i = nNewMaxSize; i < nOldSize; ++i)
m_pData[i].~TYPE();
}
}
// Adjust buffer. Note that there's no need to check for error
// since if it happens, nOldSize == nNewMaxSize will be true.)
HRESULT hr = SetSizeInternal(nNewMaxSize);
if(nOldSize < nNewMaxSize)
{
assert(m_pData);
if(m_pData)
{
// Adding elements. Call ctor.
for(int i = nOldSize; i < nNewMaxSize; ++i)
::new (&m_pData[i]) TYPE;
}
}
return hr;
}
이
는 DXSDK (2010 년 6 월)의 내 버전에 라인 (428)에 DXUTmisc.h에서 찾을 수 있습니다. 나는 그것에 대해 궁금한가요 :: 새로운 건 .... 구글과 스택 오버플로에 대한 검색을 시도하고 있지만 검색 엔진에 ":: new"를 입력하면 검색 엔진이 두 개의 콜론을 버리는 것 같습니다. ...
'::'는 [범위 분석 연산자] (http://en.wikipedia.org/wiki/Scope_resolution_operator)이며 전역 범위를 지정합니다. 전역 범위에서'new'가 호출되는지 확인합니다. – Joe