@ -125,15 +125,17 @@ TEST(ConvertIdentifierNameToWordsTest, WorksWhenNameIsMixture) {
}
TEST ( PointeeOfTest , WorksForSmartPointers ) {
CompileAssertTypesEqual < int , PointeeOf < std : : unique_ptr < int > > : : type > ( ) ;
CompileAssertTypesEqual < std : : string ,
PointeeOf < std : : shared_ptr < std : : string > > : : type > ( ) ;
EXPECT_TRUE (
( std : : is_same < int , PointeeOf < std : : unique_ptr < int > > : : type > : : value ) ) ;
EXPECT_TRUE (
( std : : is_same < std : : string ,
PointeeOf < std : : shared_ptr < std : : string > > : : type > : : value ) ) ;
}
TEST ( PointeeOfTest , WorksForRawPointers ) {
CompileAssertTypesEqual < int , PointeeOf < int * > : : type > ( ) ;
CompileAssertTypesEqual < const char , PointeeOf < const char * > : : type > ( ) ;
CompileAssertTypesEqual < void , PointeeOf < void * > : : type > ( ) ;
EXPECT_TRUE ( ( std : : is_same < int , PointeeOf < int * > : : type > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < const char , PointeeOf < const char * > : : type > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_void < PointeeOf < void * > : : type > : : value ) ) ;
}
TEST ( GetRawPointerTest , WorksForSmartPointers ) {
@ -664,63 +666,66 @@ TEST(StlContainerViewTest, WorksForDynamicNativeArray) {
TEST ( FunctionTest , Nullary ) {
typedef Function < int ( ) > F ; // NOLINT
EXPECT_EQ ( 0u , F : : ArgumentCount ) ;
CompileAssertTypesEqual < int , F : : Result > ( ) ;
CompileAssertTypesEqual < std : : tuple < > , F : : ArgumentTuple > ( ) ;
CompileAssertTypesEqual < std : : tuple < > , F : : ArgumentMatcherTuple > ( ) ;
CompileAssertTypesEqual < void ( ) , F : : MakeResultVoid > ( ) ;
CompileAssertTypesEqual < IgnoredValue ( ) , F : : MakeResultIgnoredValue > ( ) ;
EXPECT_TRUE ( ( std : : is_same < int , F : : Result > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < std : : tuple < > , F : : ArgumentTuple > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < std : : tuple < > , F : : ArgumentMatcherTuple > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < void ( ) , F : : MakeResultVoid > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < IgnoredValue ( ) , F : : MakeResultIgnoredValue > : : value ) ) ;
}
TEST ( FunctionTest , Unary ) {
typedef Function < int ( bool ) > F ; // NOLINT
EXPECT_EQ ( 1u , F : : ArgumentCount ) ;
CompileAssertTypesEqual < int , F : : Result > ( ) ;
CompileAssertTypesEqual < bool , F : : Arg < 0 > : : type > ( ) ;
CompileAssertTypesEqual < std : : tuple < bool > , F : : ArgumentTuple > ( ) ;
CompileAssertTypesEqual < std : : tuple < Matcher < bool > > ,
F : : ArgumentMatcherTuple > ( ) ;
CompileAssertTypesEqual < void ( bool ) , F : : MakeResultVoid > ( ) ; // NOLINT
CompileAssertTypesEqual < IgnoredValue ( bool ) , // NOLINT
F : : MakeResultIgnoredValue > ( ) ;
EXPECT_TRUE ( ( std : : is_same < int , F : : Result > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < bool , F : : Arg < 0 > : : type > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < std : : tuple < bool > , F : : ArgumentTuple > : : value ) ) ;
EXPECT_TRUE ( (
std : : is_same < std : : tuple < Matcher < bool > > , F : : ArgumentMatcherTuple > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < void ( bool ) , F : : MakeResultVoid > : : value ) ) ; // NOLINT
EXPECT_TRUE ( ( std : : is_same < IgnoredValue ( bool ) , // NOLINT
F : : MakeResultIgnoredValue > : : value ) ) ;
}
TEST ( FunctionTest , Binary ) {
typedef Function < int ( bool , const long & ) > F ; // NOLINT
EXPECT_EQ ( 2u , F : : ArgumentCount ) ;
CompileAssertTypesEqual < int , F : : Result > ( ) ;
CompileAssertTypesEqual < bool , F : : Arg < 0 > : : type > ( ) ;
CompileAssertTypesEqual < const long & , F : : Arg < 1 > : : type > ( ) ; // NOLINT
CompileAssertTypesEqual < std : : tuple < bool , const long & > , // NOLINT
F : : ArgumentTuple > ( ) ;
CompileAssertTypesEqual <
std : : tuple < Matcher < bool > , Matcher < const long & > > , // NOLINT
F : : ArgumentMatcherTuple > ( ) ;
CompileAssertTypesEqual < void ( bool , const long & ) , F : : MakeResultVoid > ( ) ; // NOLINT
CompileAssertTypesEqual < IgnoredValue ( bool , const long & ) , // NOLINT
F : : MakeResultIgnoredValue > ( ) ;
EXPECT_TRUE ( ( std : : is_same < int , F : : Result > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < bool , F : : Arg < 0 > : : type > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < const long & , F : : Arg < 1 > : : type > : : value ) ) ; // NOLINT
EXPECT_TRUE ( ( std : : is_same < std : : tuple < bool , const long & > , // NOLINT
F : : ArgumentTuple > : : value ) ) ;
EXPECT_TRUE (
( std : : is_same < std : : tuple < Matcher < bool > , Matcher < const long & > > , // NOLINT
F : : ArgumentMatcherTuple > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < void ( bool , const long & ) , // NOLINT
F : : MakeResultVoid > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < IgnoredValue ( bool , const long & ) , // NOLINT
F : : MakeResultIgnoredValue > : : value ) ) ;
}
TEST ( FunctionTest , LongArgumentList ) {
typedef Function < char ( bool , int , char * , int & , const long & ) > F ; // NOLINT
EXPECT_EQ ( 5u , F : : ArgumentCount ) ;
CompileAssertTypesEqual < char , F : : Result > ( ) ;
CompileAssertTypesEqual < bool , F : : Arg < 0 > : : type > ( ) ;
CompileAssertTypesEqual < int , F : : Arg < 1 > : : type > ( ) ;
CompileAssertTypesEqual < char * , F : : Arg < 2 > : : type > ( ) ;
CompileAssertTypesEqual < int & , F : : Arg < 3 > : : type > ( ) ;
CompileAssertTypesEqual < const long & , F : : Arg < 4 > : : type > ( ) ; // NOLINT
CompileAssertTypesEqual <
std : : tuple < bool , int , char * , int & , const long & > , // NOLINT
F : : ArgumentTuple > ( ) ;
CompileAssertTypesEqual <
std : : tuple < Matcher < bool > , Matcher < int > , Matcher < char * > , Matcher < int & > ,
Matcher < const long & > > , // NOLINT
F : : ArgumentMatcherTuple > ( ) ;
CompileAssertTypesEqual < void ( bool , int , char * , int & , const long & ) , // NOLINT
F : : MakeResultVoid > ( ) ;
CompileAssertTypesEqual <
IgnoredValue ( bool , int , char * , int & , const long & ) , // NOLINT
F : : MakeResultIgnoredValue > ( ) ;
EXPECT_TRUE ( ( std : : is_same < char , F : : Result > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < bool , F : : Arg < 0 > : : type > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < int , F : : Arg < 1 > : : type > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < char * , F : : Arg < 2 > : : type > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < int & , F : : Arg < 3 > : : type > : : value ) ) ;
EXPECT_TRUE ( ( std : : is_same < const long & , F : : Arg < 4 > : : type > : : value ) ) ; // NOLINT
EXPECT_TRUE (
( std : : is_same < std : : tuple < bool , int , char * , int & , const long & > , // NOLINT
F : : ArgumentTuple > : : value ) ) ;
EXPECT_TRUE (
( std : : is_same <
std : : tuple < Matcher < bool > , Matcher < int > , Matcher < char * > , Matcher < int & > ,
Matcher < const long & > > , // NOLINT
F : : ArgumentMatcherTuple > : : value ) ) ;
EXPECT_TRUE (
( std : : is_same < void ( bool , int , char * , int & , const long & ) , // NOLINT
F : : MakeResultVoid > : : value ) ) ;
EXPECT_TRUE ( (
std : : is_same < IgnoredValue ( bool , int , char * , int & , const long & ) , // NOLINT
F : : MakeResultIgnoredValue > : : value ) ) ;
}
} // namespace