1
2# (C) Copyright Tobias Schwinger
3#
4# Use, modification and distribution are subject to the Boost Software License,
5# Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
6
7#-------------------------------------------------------------------------------
8
9import testing ;
10
11{
12  test-suite function_types :
13
14    # Classification
15
16    [ compile classification/is_function.cpp ]
17    [ compile classification/is_function_pointer.cpp ]
18    [ compile classification/is_function_reference.cpp ]
19    [ compile classification/is_member_function_pointer.cpp ]
20    [ compile classification/is_member_object_pointer.cpp ]
21    [ compile classification/is_callable_builtin.cpp ]
22    [ compile classification/is_nonmember_callable_builtin.cpp ]
23    [ compile classification/is_member_pointer.cpp ]
24
25    [ compile classification/is_cv_mem_func_ptr.cpp ]
26    [ compile classification/is_variadic.cpp ]
27    [ compile classification/is_cv_pointer.cpp ]
28    # [ compile classification/is_cv_function.cpp ]
29
30    # Decomposition
31
32    [ compile decomposition/components.cpp ]
33    [ compile decomposition/result_type.cpp ]
34    [ compile decomposition/function_arity.cpp ]
35    [ compile decomposition/parameter_types.cpp ]
36
37    [ compile decomposition/components_seq.cpp ]
38    [ compile decomposition/class_type_transform.cpp ]
39
40    [ compile-fail decomposition/result_type_fail.cpp ]
41    [ compile-fail decomposition/parameter_types_fail.cpp ]
42    [ compile-fail decomposition/function_arity_fail.cpp ]
43
44    # Synthesis
45
46    [ compile synthesis/function_type.cpp ]
47    [ compile synthesis/function_pointer.cpp ]
48    [ compile synthesis/function_reference.cpp ]
49    [ compile synthesis/member_function_pointer.cpp ]
50    [ compile synthesis/member_object_pointer.cpp ]
51
52    [ compile synthesis/transformation.cpp ]
53    [ compile synthesis/mem_func_ptr_cv1.cpp ]
54    [ compile synthesis/mem_func_ptr_cv2.cpp ]
55    [ compile synthesis/mem_func_ptr_cv_ptr_to_this.cpp ]
56    [ compile synthesis/variadic_function_synthesis.cpp ]
57    # [ compile synthesis/cv_function_synthesis.cpp ]
58
59    # Reconfiguration
60
61    [ compile reconfiguration/preprocessing_mode.cpp ]
62    [ compile reconfiguration/partial_arity_preprocessing.cpp ]
63    [ compile reconfiguration/cc_preprocessing.cpp ]
64
65    # Custom calling conventions
66
67    [ compile custom_ccs/nonmember_ccs.cpp ]
68    [ compile custom_ccs/nonmember_ccs_exact.cpp ]
69    [ compile custom_ccs/member_ccs.cpp ]
70    [ compile custom_ccs/member_ccs_exact.cpp ]
71
72    # Code from the examples
73
74    [ compile ../example/interpreter_example.cpp ]
75    [ compile ../example/result_of_example.cpp ]
76    [ compile ../example/interface_example.cpp ]
77    [ compile ../example/fast_mem_fn_example.cpp
78      # needed for Boost.PP file iteration with some compilers
79      : <include>../example
80    ]
81    [ compile ../example/macro_type_args_example.cpp ]
82    ;
83}
84
85
86