diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2009-09-28 23:23:31 +0000 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2009-09-28 23:23:31 +0000 |
commit | 74ea13c1a8d63e4f4015e2b9e7e4336e546e7e4a (patch) | |
tree | d895d7e93cf93022f48bd6d173f616f1bb4b99fc /test/cedet/tests/testusing.cpp | |
parent | b9de0a4665563f847bc7c94f8c89180bf2a9f6bd (diff) | |
download | emacs-74ea13c1a8d63e4f4015e2b9e7e4336e546e7e4a.tar.gz |
Add CEDET tests.
Diffstat (limited to 'test/cedet/tests/testusing.cpp')
-rw-r--r-- | test/cedet/tests/testusing.cpp | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/test/cedet/tests/testusing.cpp b/test/cedet/tests/testusing.cpp new file mode 100644 index 00000000000..b35f3a13063 --- /dev/null +++ b/test/cedet/tests/testusing.cpp @@ -0,0 +1,132 @@ +// Test using statements in C++ + +#include <adstdio.h> + +#include <testusing.hh> + +namespace moose { + + class MyClass; + class Point; + + typedef MyClass snerk; +} + +namespace moose { + + class Point; + class MyClass; + +} + +namespace { + + int global_variable = 0; + +}; + +using moose::MyClass; + +void someFcn() { + + MyClass f; + + f.//-1- + ; //#1# ( "getVal" "setVal" ) + +} + +// Code from Zhiqiu Kong + +namespace panda { + + using namespace bread_name; + + int func() + { + bread test; + test.//-2- + ;// #2# ( "geta" ) + return 0; + } +} + +// Local using statements and aliased types +// Code from David Engster + +void func2() +{ + using namespace somestuff; + OneClass f; + f.//-3- + ; //#3# ( "aFunc" "anInt" ) +} + +void func3() +{ + using somestuff::OneClass; + OneClass f; + f.//-4- + ; //#4# ( "aFunc" "anInt" ) +} + +// Dereferencing alias types created through 'using' statements + +// Alias with fully qualified name +void func4() +{ + otherstuff::OneClass f; + f. //-5- + ; //#5# ( "aFunc" "anInt" ) +} + +// Alias through namespace directive +void func5() +{ + using namespace otherstuff; + OneClass f; + f. //-6- + ; //#6# ( "aFunc" "anInt" ) +} + +// Check name hiding +void func6() +{ + using namespace morestuff; + OneClass f; // Alias for somestuff::OneClass + f. //-7- + ; //#7# ( "aFunc" "anInt" ) + aStruct g; // This however is morestuff::aStruct ! + g. //-8- + ; //#8# ( "anotherBar" "anotherFoo" ) +} + +// Alias of an alias +// Currently doesn't work interactively for some reason. +void func6() +{ + using namespace evenmorestuff; + OneClass f; + f. //-7- + ; //#7# ( "aFunc" "anInt" ) +} + +// Alias for struct in nested namespace, fully qualified +void func7() +{ + outer::StructNested f; + f.//-8- + ; //#8# ( "one" "two" ) +} + +// Alias for nested namespace +void func8() +{ + using namespace outerinner; + StructNested f; + AnotherStruct g; + f.//-9- + ; //#9# ( "one" "two" ) + g.//-10- + ; //#10# ( "four" "three" ) +} |