Go to the documentation of this file.00001
00009
00010
00011
00012
00013 #include <gtest/gtest.h>
00014 #include "../../include/ecl/utilities/references.hpp"
00015
00020
00021
00022
00023
00024 namespace ecl {
00025 namespace utilities {
00026 namespace tests {
00027
00028 class ReferenceDummy {
00029 public:
00030 int i;
00031 };
00032
00033 }}}
00034
00035
00036
00037
00038
00039 using ecl::ReferenceWrapper;
00040 using ecl::cref;
00041 using ecl::ref;
00042 using ecl::is_reference_wrapper;
00043 using ecl::utilities::tests::ReferenceDummy;
00044
00045
00046
00047
00048
00049 TEST(Reference,usage) {
00050
00051 int i = 3;
00052 ReferenceWrapper<int> wrapper(i);
00053 int &j = wrapper;
00054 EXPECT_EQ(j,3);
00055 }
00056
00057 TEST(Reference,traits) {
00058 EXPECT_TRUE(is_reference_wrapper< ReferenceWrapper<int> >::value);
00059 EXPECT_FALSE(is_reference_wrapper<int>::value);
00060 }
00061
00062 TEST(Reference,functions) {
00063 int i = 3;
00064 ReferenceWrapper<int> refd = ref(i);
00065 ReferenceWrapper<int const> crefd = cref(i);
00066 EXPECT_EQ(3,refd);
00067 EXPECT_EQ(3,crefd);
00068 }
00069
00070
00071
00072
00073
00074 int main(int argc, char **argv) {
00075 testing::InitGoogleTest(&argc,argv);
00076 return RUN_ALL_TESTS();
00077 }
00078