Code Smarter
Harnessing AI tools for C++ Development
C++

1





Speaker and organizer of C++ conferences
A leader in C++ standardization committee


Israeli NB Chair, LEWG Chair
Nice to meet you!
I'm Inbal Levi
2




Developing and deploying AI tools for C++ Engineers at Microsoft
Nice to meet you!
I'm Inbal Levi
3
* Optinions are my own
- 78% of organizations use AI in at least one function
- Today's Market: ~$0.25T
- Expected Market: $3.3T by 2033 (2-4% of world economy)

https://hai.stanford.edu/ai-index/2025-ai-index-report
AI Usage in the Industry
4
AI World








Hugging Face

PyTorch

TensorFlow

Claude

Github Copilot

OpenAI

Anthropic

ChatGPT

5

Cursor

VSCode
Three Types of AI Interfaces



Agents:
Autonomous for specialized tasks.
Development Tools:
IDEs and code reviews (e.g., GitHub Copilot).
Chats:
Brainstorming, research, and open discussion.
6
AI Workflow




class Student {
	std::string name;
    uint32_t id;
    std::vector<uint8_t> classes;
};...
class Student {
	std::string name;
    uint32_t id;
    std::vector<uint8_t> classes;
};Generate a "student" class with: id, name, grade
student.hpp
7
Development Tools
- VSCode (+ WSL)
- Extensions: Cline (+ CLI since v3.33), Roo, ChatGpt, ClaudeCode (+CLI)

8
Development Tools

- VSCode (+ WSL)
- Extensions: Cline (+ CLI since v3.33), Roo, ChatGpt, ClaudeCode (+CLI)
- API Providers: VS Code LM API (GitHub account), Anthropic, Cline
9
Development Tools
- Cline, with GPT-5, via. VS Code LM API (GitHub) provider
- "Can you add logging to my code?"


10
"Add logger" Workflow




"Need more context"
Here are 5 options:
...
Add logging to my code
How to add logging to C++ code?
C++ project
No logger
11




Breaking AI into parts
12

Part I: Model
- The "Brain" processing your requests
- LLMs (large language model) or SLMs
- Architecture: Neural Networks (transformers)
- Provider: Server which runs the model

1
35
23
4
Add logging to my code
Here are 5 options:
...
18
27
CppCon 2025 Keynote (Daisy Hollman): crafting-the-code-you-dont-write
13
Part II: Context
- Models for code generation (mostly) read TEXT (or images)
- 
Context: everything added to the request
 
- Context types (my definition):
	- Mutable per specific run (e.g. search results, chat)
- Immutable (e.g. project files, system prompts)
 
14


Part II: Mutable Context
15
- Chat, Answers & Clerifications
- The specific files LLM choose to look at during this run
- Results of searches

Part II: Immutable Context
16

- Project-specific context
	- Files (CLAUDE.md, .clinerules, copilot-instructions.md, etc.)
- Memory Bank
 
Part II: Immutable Context
17

- Memory Bank (CodeSmarter/ex_proj_1)

activeContext.md
productContext.md
progress.md
projectbrief.md
systemPatterns.md
techContext.md

Part II: Immutable Context
18
- Memory Bank (CodeSmarter/ex_proj_1)
Part II: Immutable Context
19

- Project-specific context
	- Files (CLAUDE.md, .clinerules, copilot-instructions.md, etc.)
- Memory Bank
 
- Global context
Part II: Immutable Context
- MCP (https://github.com/inbal2l/Logging_MCP_Demo)

Add logging to my code
I see an MCP server: logging_mcp_server
calling: list_logging_steps

"read all the resources"...
Stage 1: Create Logging Utility
Stage 2: Identify Logging Points
Stage 3: Implement Logging
Stage 4: Summary
20
Part II: Immutable Context
- MCP (https://github.com/inbal2l/Logging_MCP_Demo)
21
Questions?
22



- Infrastructure connecting to the model
- Different configuration options
Part III: Frameworks
23

<task>
Can you add logging to my code?
</task>
# Todo List (Optional - Plan Mode)
While in PLAN MODE, if you've outlined concrete steps or requirements for the user, you may include a preliminary todo list using the task_progress parameter.
Reminder on how to use the task_progress parameter
1. To create or update a todo list, include the task_progress parameter in the next tool call
2. Review each item and update its status:
   - Mark completed items with: - [x]
   - Keep incomplete items as: - [ ]
   - Add new items if you discover additional steps
3. Modify the list as needed:
- Add any new steps you've discovered
- Reorder if the sequence has changed
4. Ensure the list accurately reflects the current state
**Remember:** Keeping the todo list updated helps track progress and ensures nothing is missed.
<environment_details>
# Visual Studio Code Visible Files
memory-bank/techContext.md
# Visual Studio Code Open Tabs
memory-bank/techContext.md
# Current Time
...
# Current Working Directory (/home/inbal/AI/ExampleProjects/ex_proj_1) Files
...
doc/
include/
include/student.hpp
lib/
memory-bank/
memory-bank/activeContext.md
memory-bank/productContext.md
memory-bank/progress.md
memory-bank/projectbrief.md
memory-bank/systemPatterns.md
memory-bank/techContext.md
src/
src/app/
src/app/main.cpp
src/core/
src/core/student.cpp
src/utils/
tests/
# Workspace Configuration
{
  "workspaces": {
    "/home/inbal/AI/ExampleProjects/ex_proj_1": {
      "hint": "ex_proj_1"
    }
  }
}
# Detected CLI Tools
These are some of the tools on the user's machine, and may be useful if needed to accomplish the task: git, npm, pip, curl, make, cmake, node, code, grep, sed, awk, apt, wget. This list is not exhaustive, and other tools may be available.
# Context Window Usage
0 / 128K tokens used (0%)
# Current Mode
PLAN MODE
In this mode you should focus on information gathering, asking questions, and architecting a solution. Once you have a plan, use the plan_mode_respond tool to engage in a conversational back and forth with the user. Do not use the plan_mode_respond tool until you've gathered all the information you need e.g. with read_file or ask_followup_question.
(Remember: If it seems the user wants you to use tools only available in Act Mode, you should ask the user to "toggle to Act mode" (use those words) - they will have to manually do this themselves with the Plan/Act toggle button below. You do not have the ability to switch to Act Mode yourself, and must wait for the user to do it themselves once they are satisfied with the plan. You also cannot present an option to toggle to Act mode, as this will be something you need to direct the user to do manually themselves.)
</environment_details>

Part III: Frameworks
24



- Information collected
- Different processing before data reaches LLM
Part III: Frameworks
- Information collected
- Different processing before data reaches LLM
25

Automated
UI
focused

Immutable
Context
Configurable

Summary: The MCF Approach
26





Summary: The MCF Approach
27





28
The Big Picture
Generate "MyTypeSerializer" class in a header (you can add .cpp file if needed), based on "MyType.h" which provide "serialize" and "deserialize" methods for "MyType", turning it into bytes buffer and back into a "MyType" class.
* From: Welcome to v1.0 of meta::[[verse]]! (C++ 26 Reflection)
29

The Big Picture
* From: Welcome to v1.0 of meta::[[verse]]! (C++ 26 Reflection)
30


The Big Picture
* From: Welcome to v1.0 of meta::[[verse]]! (C++ 26 Reflection)
31

The Big Picture
* From: Welcome to v1.0 of meta::[[verse]]! (C++ 26 Reflection)
32
AI

Auto-
mation
The Big Picture
- CppCon 2025 (Jason Turner): Best Practices For AI Tool Use
- CppCon 2025 (Panel): What We Learned About AI Tolls For C++ Engineers
Increase Automation:
- Ordered instructions
- Insert instruction checks between stages
- Separate roles, use "supervisor"
- Inject determinism (MCP tools, Cline's workflows, etc.)
- Increase resoning using feedback loops
UI
focused

Inconsistent
Automated
Main Takeaways
Stage I: Capture project-specific knowledge in writing
- Context of the project
- Preferences for code style and guidelines
- Technical information
33
Main Takeaways
Stage II: Feed the knowledge to your framework
- Learn the ways to configure it
- Identify mutable and immutable context
- Use avaliable protocols:
	- memory bank
- markdown files
- MCPs
- specialized agents
- ...
 
34
Main Takeaways
Stage III: Iterative improvment on the go
- Test on different flows
- Extend tools and abilities as needed
	- Online resources
- Configure actions
 
- Fine tune instructions for the model where needed
35
Main Takeaways
Stage IV: Don't be afraid to Mix and Match
- Replace parts of your setup and see what happens!
	- Replace the Model
- Replace the Configurations
- Replace the Framework
 
36
Experiment!
- "Core C++" (TLV/Jerusalem Meetup)
- "Haifa::C++" (Haifa area)
- 
Israeli National Body (since 2019)
 Meetings and info: https://wg21il.github.io/
Inbal Levi
inballevi@microsoft.com
sinbal2lextra@gmail.com
linkedin/inballevi
Thank You!

Stay in touch!





Open positions!
Code Smarter: Harnessing AI tools for C++ Development
By Inbal Levi
Code Smarter: Harnessing AI tools for C++ Development
- 5
 
   
   
  