Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-8713

Regression in ROOT: conflict with namespaces and global variables

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • High
    • Resolution: Fixed
    • 6.08/06
    • 6.10/00, 6.08/08
    • Cling, TMVA
    • None
    • Ubuntu 16.04

    Description

      I found a regression in one of our ROOT macros which uses a number of global variables. The script worked fine in 6.06/08.

      Saving the following code,

      Int_t Layer{56};
      Int_t test() { return Layer; }

      as test.C and running it with root test.C results in the following error message

      In file included from input_line_17:1:
      /home/ritter/belle2/software/test.C:2:23: error: reference to 'Layer' is ambiguous
      Int_t test() { return Layer; }
                            ^
      /home/ritter/belle2/software/test.C:1:7: note: candidate found by name lookup is 'Layer'
      Int_t Layer{56};
            ^
      [...]/root/etc/../include/TMVA/NeuralNet.h:676:13: note: candidate found by name lookup is
            'TMVA::DNN::Layer'
            class Layer
                  ^

      I guess the problem is a using namespace TMVA::DNN in the top level of TMVA/MethodDNN.h but I'm curious why this file is included in the first place

      Attachments

        Activity

          People

            axel Axel Naumann
            d0efd835d09c19439b33 ritter@mpp.mpg.de
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: