Есть ли способ с g ++ обнаружить, когда вы объявляете член класса ссылкой (const) на shared_ptr
? Я не вижу времени, когда это когда-нибудь будет полезно, но если вы случайно объявите члена в качестве ссылки, вы можете столкнуться с некоторыми труднодоступными ошибками, если ваш счетчик ссылок достигнет нуля преждевременно (поскольку член не является удерживая по значению).Обнаружить ссылку на элемент класса shared_ptr с g ++
Или это случай, когда вы просто пишете код тщательно и полагаетесь на экспертную оценку?
EDIT: Я думаю о чем-то в строках проверок/предупреждений строки формата printf
, где выполняются конкретные проверки. Например, что-то, что проверяет shared_ptr
, а не общее предупреждение «ссылочный элемент».
Конечно, ваш код не будет компилироваться, потому что он нарушает правильность 'const'. – Puppy
Как это вообще связано с 'shared_ptr'? – Mankarse
Вы можете просто использовать регулярное выражение (чтобы уловить большинство случаев), что-то вроде 'shared_ptr \ s * <\s*\w+\s*> \ s * &'. – Mankarse