view test/cedet/tests/testusing.hh @ 105601:68686d39c93a

Replace completion-base-size by completion-base-position to fix bugs such as (bug#4699). * simple.el (completion-base-position): New var. (completion-base-size): Mark as obsolete. (choose-completion): Make it work for mouse events as well. Pass the new base-position to choose-completion-string. (choose-completion-guess-base-position): New function, extracted from choose-completion-delete-max-match. (choose-completion-delete-max-match): Use it. Make obsolete. (choose-completion-string): Use the new base-position info. (completion-root-regexp): Delete. (completion-setup-function): Preserve completion-base-position. Eliminate obsolete base-size manipulation. * minibuffer.el (display-completion-list): Don't mess with base-size. (minibuffer-completion-help): Set completion-base-position instead. * mouse.el (mouse-choose-completion): Redefine as a mere alias to choose-completion. * textmodes/bibtex.el (bibtex-complete): * emacs-lisp/crm.el (crm--choose-completion-string): Adjust to new calling convention. * complete.el (partial-completion-mode): Use minibufferp to avoid bumping into incompatible change to choose-completion-string-functions. * ido.el (ido-choose-completion-string): Make its calling convention more permissive. * comint.el (comint-dynamic-list-input-ring-select): Remove obsolete base-size manipulation. (comint-dynamic-list-input-ring): Use dotimes and push. * iswitchb.el (iswitchb-completion-help): Remove dead-code call to fundamental-mode. Use `or'.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 15 Oct 2009 01:50:17 +0000
parents 7f4c7f5c0eba
children
line wrap: on
line source

// test usings header file.

namespace moose {

  class Point;

  class MyClass;

}


namespace moose {

  class Point;

  class MyClass {
  public:
    MyClass() : fVal(0) {
    }

    ~MyClass() {};

    /**
     * fVal Accessors
     * @{
     */
    int getVal() const {
      return fVal;
    }
    void setVal(int Val) const {
      fVal = Val;
    }
    /**
     * @}
     */
  private:
    int fVal;
  };

}

namespace deer {

  class Pickle;

};

// Code from Zhiqiu Kong

#ifndef BREAD_H
#define BREAD_H

namespace bread_name {
  class bread
  {
  public:
    void geta();
  private:
    int m_a;
    int m_b;
  };
}

#endif

// Code from David Engster
// Creating alias types through 'using' trickery

namespace somestuff {
  class OneClass {
  public:
    void aFunc();
    int anInt;
  };
  struct aStruct {
    int foo;
    int bar;
  };
}

namespace otherstuff {
  // make otherstuff::OneClass an alias for somestuff::OneClass
  using somestuff::OneClass;
}

namespace morestuff {
  // make morestuff an alias namespace for somestuff
  using namespace somestuff;
  // but hide aStruct with own type
  struct aStruct {
    int anotherFoo;
    int anotherBar;
  };
}

// We can also create an alias for an alias
namespace evenmorestuff {
  using otherstuff::OneClass;
}

// Now with nested namespaces
namespace outer {
  namespace inner {
    struct StructNested {
      int one;
      int two;
    };
    struct AnotherStruct {
      int three;
      int four;
    };
  }
}

// Elevate the first struct into 'outer'
// so that we can access it via 'outer::StructNested'
namespace outer {
  using outer::inner::StructNested;
}

// Create an alias for a nested namespace
namespace outerinner {
  // equivalent to 'namespace outerinner = outer::inner;'
  using namespace outer::inner;
}

// arch-tag: f7e59fad-100b-47d3-ae8b-a8390a026ade