Dear ROOTers,
I'm wondering why the STL "set" works differently in a ROOT session and compiled code. More specifically, why in the ROOT session it requires an explicit declaration of "Compare" while the comparison for object is defined. For instance consider the following sample code:
*///file: test_set.C/
#include <iostream>
#include <set>
void test_set()
{
int i1 = new int();
int i2 = new int();
///Checking whether the integer pointer comparison is defined/ std::cout << "(i1 < i2) = " << (i1 < i2) << "\t"
<< "(i1 > i2) = " << (i1 > i2) << std::endl;
///Declaring a set of integer pointers/
set<int*> ip_set;
} ///end file test_set.C/
*
The ROOT session transcript:
*root [0] .x test_set.C
(i1 < i2) = 1 (i1 > i2) = 0
Error: Too few template arguments test_set.C:14: Error: template argument for Compare missing test_set.C:43: Error: template argument for Compare missing test_set.C:44: Error: template argument for Compare missing test_set.C:62: Error: template argument for Compare missing test_set.C:62: Error: template argument for Compare missing test_set.C:64: Error: template argument for Compare missing test_set.C:64:
Regards,
Vassili Received on Thu Jul 31 2008 - 11:48:42 CEST
This archive was generated by hypermail 2.2.0 : Thu Jul 31 2008 - 17:50:02 CEST