File tree Expand file tree Collapse file tree 7 files changed +57
-11
lines changed Expand file tree Collapse file tree 7 files changed +57
-11
lines changed Original file line number Diff line number Diff line change 1
1
#include <stdio.h>
2
2
#include <stdbool.h>
3
3
4
+ #include "my_bool.h"
5
+
4
6
bool logical_not (bool a )
5
7
{
6
8
printf ("c++ input boolean: %d size %zu\n" , a , sizeof (a ));
7
9
8
10
return !a ;
9
11
}
12
+
13
+ bool bool_true (){ return true; }
14
+ bool bool_false (){ return false; }
Original file line number Diff line number Diff line change 1
1
#include < iostream>
2
2
3
- extern " C" bool logical_not (bool a)
4
- {
3
+ #include " my_bool.h"
5
4
5
+ bool logical_not (bool a)
6
+ {
6
7
std::cout << " c++ input boolean: " << a << " size " << sizeof (a) << " \n " ;
7
8
8
9
return !a;
9
-
10
10
}
11
+
12
+ bool bool_true (){ return true ; }
13
+ bool bool_false (){ return false ; }
Original file line number Diff line number Diff line change @@ -31,4 +31,13 @@ logical(c_bool) function logical_not(L) bind(C)
31
31
32
32
end function logical_not
33
33
34
+
35
+ logical (C_BOOL) function bool_true() bind(C)
36
+ bool_true = .true. _C_BOOL
37
+ end function
38
+
39
+ logical (C_BOOL) function bool_false() bind(C)
40
+ bool_false = .false. _C_BOOL
41
+ end function
42
+
34
43
end module logbool
Original file line number Diff line number Diff line change @@ -4,6 +4,9 @@ extern "C" {
4
4
5
5
bool logical_not (bool );
6
6
7
+ bool bool_true ();
8
+ bool bool_false ();
9
+
7
10
#ifdef __cplusplus
8
11
}
9
12
#endif
Original file line number Diff line number Diff line change @@ -4,10 +4,10 @@ add_library(bool_fortran ${PROJECT_SOURCE_DIR}/src/bool/logbool.f90)
4
4
target_include_directories (bool_fortran INTERFACE ${PROJECT_SOURCE_DIR} /src/bool )
5
5
6
6
add_library (bool_cxx ${PROJECT_SOURCE_DIR} /src/bool/logbool.cpp )
7
- target_include_directories (bool_cxx INTERFACE ${PROJECT_SOURCE_DIR} /src/bool )
7
+ target_include_directories (bool_cxx PUBLIC ${PROJECT_SOURCE_DIR} /src/bool )
8
8
9
9
add_library (bool_c ${PROJECT_SOURCE_DIR} /src/bool/logbool.c )
10
- target_include_directories (bool_c INTERFACE ${PROJECT_SOURCE_DIR} /src/bool )
10
+ target_include_directories (bool_c PUBLIC ${PROJECT_SOURCE_DIR} /src/bool )
11
11
12
12
add_executable (c_fortran_bool main.c )
13
13
target_link_libraries (c_fortran_bool PRIVATE bool_fortran )
@@ -31,6 +31,6 @@ add_executable(c_cxx_bool main.c)
31
31
target_link_libraries (c_cxx_bool PRIVATE bool_cxx )
32
32
add_test (NAME C_Cpp_bool COMMAND c_cxx_bool )
33
33
34
- add_executable (cxx_bool main.cpp )
35
- target_link_libraries (cxx_bool PRIVATE bool_cxx )
36
- add_test (NAME Cpp_bool COMMAND cxx_bool )
34
+ add_executable (cxx_c_bool main.cpp )
35
+ target_link_libraries (cxx_c_bool PRIVATE bool_c )
36
+ add_test (NAME Cpp_bool COMMAND cxx_c_bool )
Original file line number Diff line number Diff line change 6
6
7
7
int main (void ){
8
8
9
- bool b = logical_not (true) ;
9
+ bool b ;
10
10
int c = 0 ;
11
11
12
+ b = bool_true ();
13
+ if (!b ){
14
+ fprintf (stderr , "bool_true() failed: %d\n" , b );
15
+ c ++ ;
16
+ }
17
+
18
+ b = bool_false ();
19
+ if (b ){
20
+ fprintf (stderr , "bool_false() failed: %d\n" , b );
21
+ c ++ ;
22
+ }
23
+
24
+ b = logical_not (true);
12
25
if (b ) {
13
26
fprintf (stderr , "logical_not(true) should be false: %d\n" , b );
14
27
c ++ ;
15
28
}
16
29
17
30
b = logical_not (false);
18
-
19
31
if (!b ) {
20
32
fprintf (stderr , "logical_not(false) should be true: %d\n" , b );
21
33
c ++ ;
Original file line number Diff line number Diff line change 6
6
7
7
int main (){
8
8
9
- bool b = logical_not (true );
10
9
int c = 0 ;
10
+ bool b;
11
+
12
+ b = bool_true ();
13
+ if (!b){
14
+ std::cerr << " bool_true() failed: " << b << " \n " ;
15
+ c++;
16
+ }
17
+
18
+ b = bool_false ();
19
+ if (b){
20
+ std::cerr << " bool_false() failed: " << b << " \n " ;
21
+ c++;
22
+ }
23
+
24
+ b = logical_not (true );
11
25
12
26
if (b){
13
27
std::cerr << " logical_not(true) failed: " << b << " \n " ;
You can’t perform that action at this time.
0 commit comments