Ошибка в гистограммах C++ root

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

    void TMTrackAnalyzer::beginJob(){
    hisStubsVsR_.insert( pair< ObjectType, TH1F* > (InputData, dirs_.at(InputData).make<TH1F>("StubsVsR","; radius (cm); No. stubs in tracker",1200,0.,120.)));
    }

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

    expected primary-expression before '(' token
    expected primary-expression before ',' token
    expected primary-expression before ')' token
    expected primary-expression before '>' token
    left operand of comma operator has no effect [-Werror=unused-value]

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

1 ответ

Впоследствии вы не можете поместить два строковых литерала, например: ("str1" "str2"). Сложите все вместе или разделите запятыми. Для компиляции ваша строка должна быть одной из следующих:

hisStubsVsR_.insert( pair< ObjectType, TH1F* > (InputData, dirs_.at(InputData).make<TH1F>("StubsVsR","; radius (cm); No. stubs in tracker",1200,0.,120.)));

hisStubsVsR_.insert( pair< ObjectType, TH1F* > (InputData, dirs_.at(InputData).make<TH1F>("StubsVsR","; radius (cm);", "No. stubs", "in tracker",1200,0.,120.)));
Другие вопросы по тегам