*(new foo_Bar_t)
), тогда всё плохо.struct MyStruct
{
int val;
MyStruct()
: val(0)
{
}
const int& get() const
{
return val;
}
};
{
MyStruct obj;
const int& val = obj.get();
// using val
}
А согласно принципу одного определения, структура должна быть определена одинаково и в С и в С++ коде
ppBuff
):template <class _CharType>
inline void AtlConvAllocMemory(
_Inout_ _Deref_post_cap_(nLength) _CharType** ppBuff,
_In_ int nLength,
_Inout_cap_(nFixedBufferLength) _CharType* pszFixedBuffer,
_In_ int nFixedBufferLength)
{
ATLENSURE_THROW(ppBuff != NULL, E_INVALIDARG);
ATLENSURE_THROW(nLength >= 0, E_INVALIDARG);
ATLENSURE_THROW(pszFixedBuffer != NULL, E_INVALIDARG);
//if buffer malloced, try to realloc.
if (*ppBuff != pszFixedBuffer)
{
if( nLength > nFixedBufferLength )
{
_CharType* ppReallocBuf = static_cast< _CharType* >( _recalloc(*ppBuff, nLength,sizeof( _CharType ) ) );
if (ppReallocBuf == NULL)
{
AtlThrow( E_OUTOFMEMORY );
}
*ppBuff = ppReallocBuf;
} else
{
free(*ppBuff);
*ppBuff=pszFixedBuffer;
}
} else //Buffer is not currently malloced.
{
if( nLength > nFixedBufferLength )
{
*ppBuff = static_cast< _CharType* >( calloc(nLength,sizeof( _CharType ) ) );
} else
{
*ppBuff=pszFixedBuffer;
}
}
if (*ppBuff == NULL)
{
AtlThrow( E_OUTOFMEMORY );
}
}
calloc (_recalloc)
Project '*.vcxproj' is not up to date because 1 build inputs were missing.
up to date is missing: 'path\to\project\REM'
qmake
— он ведь думает каждый раз, что нужно сгенерировать moc_*
файлы, а студия уже по инерции всё билдит — ведь файлы-то изменились теперь уже действительно. Странно то, что если использовать Visual Studio Add-in
, который, по сути, почти такой же коммандой генерирует проектный файл — никакого moc
-инга не происходит.