suggest_modern_cpp
Upgrade C++ code to modern standards by analyzing code and providing specific rewrite suggestions with new language features.
Instructions
建议将代码升级为现代 C++ 写法
参数:
code: 要分析的 C++ 代码
target_standard: 目标 C++ 标准,可选值:
- cpp11: C++11
- cpp14: C++14
- cpp17: C++17 (默认)
- cpp20: C++20
- cpp23: C++23
返回:
现代化建议报告,包括可以使用的新特性和重写示例
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| target_standard | No | cpp17 |
Implementation Reference
- cpp_style/tools/modern_cpp.py:10-42 (handler)Core handler logic: ModernCppSuggester.suggest_modern_cpp method performs feature detection via regex patterns for each C++ standard and generates modernization suggestions report.def suggest_modern_cpp(self, code: str, target_standard: str = "cpp17") -> Tuple[List[Dict], str]: """ 建议将代码升级为现代 C++ 写法 Args: code: 要分析的 C++ 代码 target_standard: 目标标准 (cpp11, cpp14, cpp17, cpp20, cpp23) Returns: (建议列表, 格式化的建议报告) """ suggestions = [] # 根据目标标准检查可用特性 if target_standard in ['cpp11', 'cpp14', 'cpp17', 'cpp20', 'cpp23']: suggestions.extend(self._check_cpp11_features(code)) if target_standard in ['cpp14', 'cpp17', 'cpp20', 'cpp23']: suggestions.extend(self._check_cpp14_features(code)) if target_standard in ['cpp17', 'cpp20', 'cpp23']: suggestions.extend(self._check_cpp17_features(code)) if target_standard in ['cpp20', 'cpp23']: suggestions.extend(self._check_cpp20_features(code)) if target_standard == 'cpp23': suggestions.extend(self._check_cpp23_features(code)) # 生成报告 report = self._generate_report(suggestions, target_standard) return suggestions, report
- cpp_style_server.py:106-126 (registration)MCP tool registration with @mcp.tool() decorator. Thin wrapper handler that invokes the core suggester. Includes input/output schema via type hints and detailed docstring.@mcp.tool() def suggest_modern_cpp(code: str, target_standard: str = "cpp17") -> str: """ 建议将代码升级为现代 C++ 写法 参数: code: 要分析的 C++ 代码 target_standard: 目标 C++ 标准,可选值: - cpp11: C++11 - cpp14: C++14 - cpp17: C++17 (默认) - cpp20: C++20 - cpp23: C++23 返回: 现代化建议报告,包括可以使用的新特性和重写示例 """ suggester = get_modern_cpp_suggester() suggestions, report = suggester.suggest_modern_cpp(code, target_standard) return report
- Factory function get_suggester() provides singleton instance of ModernCppSuggester used by the tool handler._suggester = None def get_suggester() -> ModernCppSuggester: """获取全局现代 C++ 建议器实例""" global _suggester if _suggester is None: _suggester = ModernCppSuggester() return _suggester