title: double colon for instance variables in c++
body: <p>I have always been under the impression that <code>&lt;class&gt;::&lt;variable&gt;</code> is for accessing static members. However, I am surprised to find out that the following compiles just fine. (I would have used <code>this-&gt;</code> as shown in the inline comment.)</p>
  
  <p>Further investigation on Google/StackOverflow doesn't show anything pertinent to this behavior, I wonder if anyone could shed some light on this.</p>
  
  <pre><code>class Test {
      private:
          int x;
      public:
      void set_x(int x) {
          // this-&gt;x = x;
          Test::x = x;
      }
  };
  
  int main(int argc, char *argv[])
  {
      return 0;
  }
  </code></pre>
  
  <p>ENV: clang version 7.0.0- (trunk)</p>