Member 13317763 Ответов: 1

Ошибка в коде гистограммы C++ (root)


У меня есть эта строка кода на C++ (root):

void TMTrackAnalyzer::beginJob()
{
          edm::Service<TFileService> fs;
                                                                                                   
          dirs_.insert(std::pair< ObjectType, TFileDirectory* >(InputData, fs->mkdir("InputData") ) );
                                                    
}


который в основном заполняет гистограмму, задает диапазон гистограммы, метку и заголовок. На самом деле я заполняю больше гистограмм в этой функции, но я поставил здесь только одну для простоты. И для каждого из них я получаю эти ошибки:

ожидаемое первичное выражение перед токеном '('
ожидаемое первичное выражение перед токеном ','

Они относятся к ( и, до и после ввода данных. InputData-это каталог, в котором я хочу сохранить гистограммы. Кто-нибудь знает, что здесь не так? Спасибо!

Что я уже пробовал:

Я попытался погуглить что-то похожее, но ничего не нашел и не знаю, что делать

1 Ответов

Рейтинг:
0

Jochen Arndt

Ваш std::pair строительство-это неправильно. Вы, вероятно, хотите использовать std::make_pair или создайте его явно с помощью имени переменной перед передачей в dirs_.insert (непроверенный):

std::pair< ObjectType, TFileDirectory* > mypair (InputData, fs->mkdir("InputData") ) );
dirs_.insert(mypair);

Смотреть также пара:пара - Справочник по c++ [^].