В любом месте, где я пытаюсь использовать std::map
с любым изменением параметров типа, мне предоставляется красная подсветка синтаксиса, которая должна указывать на ошибку компилятора, но Я все еще могу компилировать и запускать без проблем. Я перезапустил визуальную студию, очистил свой проект и перестроил проект, но проблема все еще сохраняется. Я также попытался удалить .sdf
, поскольку я думал, что это может спасти что-то странное в его истории, по крайней мере, из того, что я исследовал, это могло быть причиной. Я тоже на уровне 4-го уровня; Я попытался опустить его, но не сок.Тип 'std :: map <std :: basic_string <char>, int>' не заполнен
Edit 1: Это на самом деле только кажется проблемой, когда часть функции члена, если он находится в свободной функции, я не получаю подсветку синтаксиса.
Edit 2:
main.cpp
#include "MCVE.h" int main() { return 0; }
MCVE.cpp
#include "MCVE.h" #include <map> MCVE::MCVE() { } void MCVE::Test() const { // syntax highlighting error appears here std::map<std::string, int> myMap; } MCVE::~MCVE() { }
MCVE.h
#pragma once class MCVE { public: MCVE(); void Test() const; ~MCVE(); };
Edit 3: Я принял ответ Пита Беккера, но проблема, кажется, сохраняются только на моей локальной машине. Я отметил это с помощью Visual Studio, потому что предположил, что с ним что-то не так, потому что на моем домашнем компьютере есть проблема с подсветкой, а не мой рабочий компьютер.
Final Edit: Проблема оказалась в том, что один из заголовков, которые были включены в базовый тип класса у меня был вопрос с использовал header guards
вместо pragma once
, как это было в файле я работал в. Добавление правильных операторов #include
и прямое указание пространства имен на функциях не помогло. Исправлена проблема с заменой header guards
на pragma once
.
Где находится '#include'? –
Simple
@Simple Он находится в родительском заголовочном файле, поэтому я пропустил его. В том числе это не решает проблему. – user1598725
У вас есть 'using namespace std;' где-нибудь? Вы пытались использовать 'std :: string' для типа ключа? –