Bug: Spurious IntelliSense errors with C++20 Modules
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- cpp
- Área
- developer-experience, tooling
Línea de trabajo
Comienza con el ejemplo reproducible de C++20 Modules usando import std, import winrt_base y import winrt.Windows.Foundation en Visual Studio Insiders con MSVC 14.52 Preview. Compara el comportamiento de IntelliSense con el del proyecto equivalente basado en headers y revisa el winrt\base.h generado que se menciona en el error. Se considerará terminado si se identifica una solución alternativa en cppwinrt para los falsos positivos E1776 o se confirma que el problema debe resolverse en DevCom-11123562.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Version
3.0.260715.1
Summary
A simple project that uses C++/WinRT with the new C++20 Modules feature can build successfully with MSVC 14.52 Preview in Visual Studio Insiders, but has IntelliSense errors in the IDE that get in the way of return type deduction and similar. For instance, the example code causes this IntelliSense error:
function "winrt::Windows::Foundation::IUnknown::operator new(size_t)" (declared at line 2117 of module "winrt_base" ("D:\...\winrtmodcom\x64\Debug\Generated Files\winrt\base.h")) cannot be referenced -- it is a deleted function
More likely than not, this is simply an IDE and IntelliSense bug and I've reported it as such in DevCom-11123562. Anyone who cares about this scenario is welcome to upvote it. Having said that, if there's any workaround that can be implemented on the cppwinrt side to mitigate these IntelliSense failures, it would be a welcome improvement to the user experience.
Reproducible example
import std;
import winrt_base;
import winrt.Windows.Foundation;
winrt::Windows::Foundation::IAsyncOperation<winrt::hstring> GetStringAsync()
{
co_return L"Hello, World!";
}
winrt::Windows::Foundation::IAsyncOperation<winrt::hstring> foo()
{
auto str = co_await GetStringAsync(); // IntelliSense labels this <error type> instead of figuring out it is a winrt::hstring.
co_return str;
}
Expected behavior
IntelliSense should be fully functional with cppwinrt C++20 Modules in scenarios that work correctly with header files.
Actual behavior
IntelliSense reports spurious E1776 errors and fails to deduce return types
Additional comments
No response
- Lenguaje dominante
- C++
- Estrellas
- 1.9k
- Forks
- 281
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/cppwinrt
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
base_macros.h disables warnings without push/pop, leaking them into consumer translation units Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 20/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
Todos los issues de microsoft/cppwinrt
Issues similares
-
enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
QuantStack/git2cpp#187 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
mlcommons/mobile_app_open#1182 ·
-
Needs-Triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
microsoft/winget-cli#6547 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
AXERA-TECH/ax-llm#77 ·