Std::make_pair in Initialization

Dear rooters,

assume this code:

[code]#include
class tpair
{
public:
tpair(){};
~tpair(){};
std::pair<double, double> test();
};

const std::pair<double, double> dummy(std::make_pair<double, double>(-1., -1.));

std::pair<double, double> tpair::test()
{
return dummy;
// return std::make_pair<double, double>(-1., -1.);
};
[/code]
Loading with CINT:

root [0] .L tpair.C
Error: Symbol make_pair is not defined in current scope  tpair.C:10:
...

I assume thats a limitation of CINT.
A colleague claims that this worked with root_v5.26.00b what I dont believe.
The commented version (return std::make_pair …) works.

Cheers
Otto

Hi,

it’s an issue with CINT understanding the initialization of of dummy. You can work around it by writing it as
const std::pair<double, double> dummy(-1., -1.);

Cheers, Axel.