При использовании KDevelop я столкнулся с некоторым кодом, где семантический анализатор сошел с ума: он в основном считает полный заголовок семантически неправильным с уродливой красной подсветкой повсюду.
Я максимально упростил код и вот результат:
В случае, если для тестирования MyClass.hpp:
#pragma once
#include <memory>
#include <variant>
template <typename Real, typename Index>
using Io = std::variant<Real, Index>;
template <typename Real, typename Index>
struct MyClass
{
std::shared_ptr<Io<Real, Index>> ioPtr;
};
Я могу построить этот код (просто добавить основную функцию в другой файл) и, таким образом, считать его допустимым кодом.
Версия KDevelop — текущая версия Debian: 5.3.1 (к сожалению, не последняя версия)
Вопрос:
Почему это происходит? Есть ли что-то, что я могу сделать, чтобы избежать этого? (без изменения кода)