DiscoverCppCastParsing and Analysing C++
Parsing and Analysing C++

Parsing and Analysing C++

Update: 2024-10-04
Share

Description

Yuri Minaev joins Timur and Phil. Yuri talks to us about static analysis and how PVS Studio helps. Then we chat about his work on a custom C++ parser, and what challenges he's encountered.

Show Notes

News

Links

This episode sponsored by...

<img title="PVS-Studio" src= "data:image/png;base64,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
00:00
00:00
x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

Parsing and Analysing C++

Parsing and Analysing C++