├── .gitignore ├── .gitmodules ├── README.md ├── drafting ├── MockingFrameworksConsideredHarmful.pdf ├── MockingFrameworksConsideredHarmful.tex ├── N2621.html ├── N2829.html ├── Nxxxx_smart_pointers_landscape.pdf ├── Nxxxx_smart_pointers_landscape.tex ├── P2968Rx_ignore.md ├── README.md ├── accepted_or_obsolete │ ├── D3188_revision_of_N3113.html │ ├── D3188_with_resurrected_launch-any-policy.html │ ├── D3189_revision_of_n3122.html │ ├── D3269.html │ ├── D3468_revision_of_N3402_UDLsuffixes.pdf │ ├── D3468_revision_of_N3402_UDLsuffixes.tex │ ├── LWG1364_resolved.txt │ ├── LWG1368_resolution.html │ ├── LWG1369_new_resolution.txt │ ├── N3189.html │ ├── N3402_UDLsuffixes.pdf │ ├── N3402_UDLsuffixes.tex │ ├── N3468.pdf │ ├── N3468.tex │ ├── N3531.pdf │ ├── N3531.tex │ ├── N3642.pdf │ ├── N3642.tex │ ├── N3660.pdf │ ├── N3660.tex │ ├── N3779-complex_literals.pdf │ ├── N3779-complex_literals.tex │ ├── N3802-apply_tuple.pdf │ ├── N3802-apply_tuple.tex │ ├── N3829-apply_tupleV2.pdf │ ├── N3829-apply_tupleV2.tex │ ├── N3830_scoped_resource.pdf │ ├── N3830_scoped_resource.tex │ ├── N3915-apply_tupleV3.pdf │ ├── N3915-apply_tupleV3.tex │ ├── N3949_scope_guard_unique_resource_v3.pdf │ ├── N3949_scope_guard_unique_resource_v3.tex │ ├── N4069.html │ ├── N4187.html │ ├── N4189_scope_exit_unique_resource_v4.pdf │ ├── N4189_scope_exit_unique_resource_v4.tex │ ├── P2264R7-assert.md │ ├── p0053r3_pablo_osyncstream.html │ ├── p0053r5_osyncstream (original).pdf │ ├── p0053r6_osyncstream (1)_commentsABQ.pdf │ ├── p0053r7_osyncstream.pdf │ ├── p0053r7_osyncstream.tex │ ├── p0616r0_move_for_accumulators.pdf │ └── p0616r0_move_for_accumulators.tex ├── cleanlatex.sh ├── cpppapers.bib ├── d1906r0_assignmentopslie.pdf ├── d1906r0_assignmentopslie.tex ├── dXXXXr0_SafeAndSaneCplusplusClasses.pdf ├── dXXXXr0_SafeAndSaneCplusplusClasses.tex ├── html_contents ├── html_outline ├── layout.tex ├── macros.tex ├── nodiscard_for_the_standard_library.md ├── other │ ├── ReSYCLatorSchemaSimple.png │ ├── ReSYCLatorSchemaSimpleAbstractTool.png │ ├── ResultSchemaSimple.png │ ├── SimpleArchitectureCRITTER.png │ ├── SimpleArchitectureNsight.png │ ├── articleStauber.bib │ ├── articleStauber_DHCCPP19.pdf │ ├── articleStauber_DHCCPP19.tex │ ├── comment.cut │ ├── cuda-main-a.cpp │ ├── cuda-main.cpp │ ├── cuda-matrix-call.cpp │ ├── cudadecl.cpp │ ├── cudamatrixMultiplication.cu │ ├── cudamult.cpp │ ├── custom_commands.tex │ ├── invoke-example.cpp │ ├── sycl-main-a.cpp │ ├── sycl-main-init.cpp │ ├── sycl-matrix-main.cpp │ ├── sycl-submit.cpp │ ├── sycldecl1.cpp │ ├── sycldecl2.cpp │ ├── syclmatrixMultiplication.cpp │ └── syclmult.cpp ├── p0052r10_scope_exit_unique_resource.pdf ├── p0052r10_scope_exit_unique_resource.tex ├── p0407r2_allocator_stringbuf.pdf ├── p0407r2_allocator_stringbuf.tex ├── p0408r7_stringview_stringbuf.pdf ├── p0408r7_stringview_stringbuf.tex ├── p0448r4_spanstreams.pdf ├── p0448r4_spanstreams.tex ├── p0647r1_scale_for_ratio.pdf ├── p0647r1_scale_for_ratio.tex ├── p0753r2_osyncstream_manipulators.pdf ├── p0753r2_osyncstream_manipulators.tex ├── p0984R0_APRIL_FOOL.pdf ├── p0984R0_APRIL_FOOL.tex ├── p1410r0_remove_strstream.pdf ├── p1410r0_remove_strstream.tex ├── p1411r0_reconsider_p0052.tex ├── p1412r0_User_defined_special_members_for_safety.pdf ├── p1412r0_User_defined_special_members_for_safety.tex ├── p1771r1_nodiscard_for_constructors.pdf ├── p1771r1_nodiscard_for_constructors.tex ├── pXXXXr0_towards_std_units.pdf ├── pXXXXr0_towards_std_units.tex ├── rejected │ ├── N3974_polymorphic_deleter.pdf │ ├── N3974_polymorphic_deleter.tex │ ├── p0506r2_stringview_parameters.pdf │ └── p0506r2_stringview_parameters.tex ├── styles.tex └── tables.tex ├── presentations ├── P2264-presentation.md ├── Pres3974.pdf ├── generated.md ├── include.awk ├── isocpp.xml ├── reveal.js ├── sommerlad2019_special_member_functions.key ├── sommerlad2019_special_member_functions.pdf └── toreveal.sh └── workspace ├── AprilFool2018 ├── .cproject ├── .project ├── AprilFool2018.xml ├── LICENSE.txt ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── ide_listener.h │ ├── ostream_listener.h │ └── xml_listener.h └── src │ ├── Test.cpp │ └── april_fool.h ├── ES.46.checker_test ├── .cproject ├── .project └── src │ └── ES.46.checker_test.cpp ├── Operators ├── .cproject ├── .project ├── Operators.xml ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h └── src │ └── Test.cpp ├── P0052_scope_exit ├── .cproject ├── .project ├── P0052_scope_exit.xml ├── README.md ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── ide_listener.h │ ├── ostream_listener.h │ ├── tap_listener.h │ └── xml_listener.h ├── demo_hello.txt └── src │ ├── Test.cpp │ ├── _scope_guard_common.h │ ├── license.txt │ ├── scope_exit.h │ └── unique_resource.h ├── Psst ├── .cproject ├── .project ├── Psst.xml ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── ide_listener.h │ ├── ostream_listener.h │ └── xml_listener.h └── src │ ├── Test.cpp │ └── psst.h ├── SaneAndSafeExamples ├── .cproject ├── .project ├── SaneAndSafeExamples.xml ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── ide_listener.h │ ├── ostream_listener.h │ ├── tap_listener.h │ └── xml_listener.h └── src │ └── Test.cpp ├── Test_basic_osyncstream ├── .cproject ├── .project ├── .suppressed ├── README.md ├── Test_basic_osyncstream.xml ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_listener.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h └── src │ ├── Test.cpp │ ├── globalstreambuflocks.cpp │ ├── globalstreambuflocks.h │ └── syncstream.h ├── Test_basic_spanbuf ├── .cproject ├── .project ├── Test_basic_spanbuf.xml ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h └── src │ ├── TestSpanstreams.cpp │ ├── span.h │ ├── spanstream.cpp │ └── spanstream.h ├── Test_basic_stringbuf_efficient ├── .cproject ├── .gitignore ├── .project ├── Test_basic_stringbuf_efficient.xml ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── ide_listener.h │ ├── ostream_listener.h │ └── xml_listener.h ├── ori_for_diff │ ├── basic_string.h │ ├── sstream.ori │ └── string └── src │ ├── FixedAllocator.h │ ├── Testp0407-p0408-efficientStringstreams.cpp │ ├── basic_string.h │ ├── basic_string.h.urg │ ├── bits │ └── sstream.tcc │ ├── sstream │ ├── string │ └── string.urg ├── Test_clang_p0407_p0408 ├── .cproject ├── .project ├── Test_clang_p0407_p0408.xml ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── ide_listener.h │ ├── ostream_listener.h │ └── xml_listener.h ├── ori_for_diff │ ├── sstream.ori.h │ └── string.ori.h └── src │ ├── FixedAllocator.h │ ├── Test_clang_p0407-p0408-efficientStringstreams.cpp │ ├── sstream │ └── string ├── UnitsTest ├── .cproject ├── .project ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h ├── include │ ├── chrono.h │ ├── ratio.h │ └── units.h └── src │ ├── CompileTimeArithmetic.cpp │ ├── CompileTimeArithmetic.h │ ├── Constexpr.cpp │ ├── Constexpr.h │ ├── Test.cpp │ ├── TypeTraits.cpp │ ├── TypeTraits.h │ ├── UnitContainer.cpp │ ├── UnitContainer.h │ ├── UnitConversion.cpp │ ├── UnitConversion.h │ ├── UnitManipulators.cpp │ ├── UnitManipulators.h │ ├── UnitMath.cpp │ ├── UnitMath.h │ └── common_for_tests.h ├── accuscc113 ├── .cproject ├── .project ├── feedback.txt └── src │ └── accuscc113.cpp ├── accuscc113_correct ├── .cproject ├── .project ├── accuscc113_correct.xml ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── ide_listener.h │ ├── ostream_listener.h │ ├── tap_listener.h │ └── xml_listener.h └── src │ └── Test.cpp ├── antelope_book_strings ├── .cproject ├── .gitignore ├── .project ├── gettimeofday.h ├── stopwatch.h ├── stopwatch11.cpp ├── stopwatch11.h ├── strings.cpp ├── strings.h ├── test_driver.cpp └── test_driver.h ├── antelope_timing_tests ├── .cproject ├── .gitignore ├── .project ├── antelope_timing_tests.xml ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h └── src │ ├── Test.cpp │ ├── string_functions.cpp │ └── string_functions.h ├── p0053_basic_osyncstreambuf ├── .cproject ├── .project ├── .suppressed ├── README.md ├── Test_basic_osyncstream.xml ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_listener.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h ├── p0053_basic_osyncstreambuf.xml └── src │ ├── Test.cpp │ ├── globalstreambuflocks.cpp │ ├── globalstreambuflocks.h │ └── syncstream.h ├── p0448 ├── .cproject ├── .project ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h ├── p0448.xml └── src │ ├── TestSpanstreams.cpp │ ├── span.h │ ├── spanstream.cpp │ └── spanstream.h ├── p0506_string_view_params_stdlib ├── .cproject ├── .project ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h ├── p0506_string_view_params_stdlib.xml └── src │ ├── Test.cpp │ └── bitset.h ├── p0616_perf ├── .cproject ├── .gitignore ├── .project └── src │ └── p0616_perf.cpp ├── p1906_examples ├── .cproject ├── .project └── src │ ├── cexample.c │ ├── memberbinding.cpp │ └── p1906_examples.cpp ├── p2264_test_for_assert_dotdotdot_on_my_machine ├── .cproject ├── .project └── src │ ├── P2264_test_for_assert_dotdotdot_WG14.c │ ├── P2264_test_for_assert_dotdotdot_on_my_machine.cpp │ ├── cassert_gcc │ ├── system_assert_h_BSD.h │ └── system_assert_original.h ├── ratio_quotient ├── .cproject ├── .project ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h ├── ratio_quotient.xml └── src │ ├── Test.cpp │ ├── ratio.h │ ├── ratio_clang.h │ └── ratio_gcc.h ├── reverseAdapter ├── .cproject ├── .project ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── ide_listener.h │ ├── ostream_listener.h │ ├── tap_listener.h │ └── xml_listener.h ├── reverseAdapter.xml └── src │ ├── Test.cpp │ └── reverse.h ├── size_type_signed ├── .cproject ├── .project └── src │ └── size_type_signed.cpp ├── test_for_indexer_crash_wiht_gcc701_header ├── .cproject ├── .project ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h └── src │ └── Test.cpp ├── test_moveability ├── .cproject ├── .project ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h ├── src │ ├── Test.cpp │ └── fobar.cpp └── test_moveability.xml ├── testfornpe ├── .cproject ├── .project ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h └── src │ └── Test.cpp ├── teststruct_class_forward ├── .cproject ├── .project ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── ide_listener.h │ ├── ostream_listener.h │ └── xml_listener.h └── src │ └── Test.cpp ├── testunits_for_indexer_check ├── .cproject ├── .project ├── cute │ ├── cute.h │ ├── cute_base.h │ ├── cute_counting_listener.h │ ├── cute_data_driven.h │ ├── cute_demangle.h │ ├── cute_deprecated.h │ ├── cute_determine_library.h │ ├── cute_determine_traits.h │ ├── cute_determine_version.h │ ├── cute_diff_values.h │ ├── cute_equals.h │ ├── cute_integer_sequence.h │ ├── cute_listener.h │ ├── cute_range.h │ ├── cute_relops.h │ ├── cute_repeated_test.h │ ├── cute_runner.h │ ├── cute_suite.h │ ├── cute_suite_test.h │ ├── cute_test.h │ ├── cute_test_incarnate.h │ ├── cute_testmember.h │ ├── cute_throws.h │ ├── cute_to_string.h │ ├── cute_version.h │ ├── cute_xml_file.h │ ├── gpl.txt │ ├── ide_listener.h │ ├── lgpl.txt │ ├── ostream_listener.h │ └── xml_listener.h └── src │ ├── Test.cpp │ └── units.h └── ttttttttt ├── .cproject ├── .project ├── bla.cpp └── cute ├── cute.h ├── cute_base.h ├── cute_counting_listener.h ├── cute_data_driven.h ├── cute_demangle.h ├── cute_deprecated.h ├── cute_determine_library.h ├── cute_determine_traits.h ├── cute_determine_version.h ├── cute_diff_values.h ├── cute_equals.h ├── cute_integer_sequence.h ├── cute_listener.h ├── cute_range.h ├── cute_relops.h ├── cute_repeated_test.h ├── cute_runner.h ├── cute_suite.h ├── cute_suite_test.h ├── cute_test.h ├── cute_test_incarnate.h ├── cute_testmember.h ├── cute_throws.h ├── cute_to_string.h ├── cute_version.h ├── cute_xml_file.h ├── gpl.txt ├── ide_listener.h ├── lgpl.txt ├── ostream_listener.h └── xml_listener.h /.gitignore: -------------------------------------------------------------------------------- 1 | *.aux 2 | *.bbl 3 | *.blg 4 | *.dvi 5 | *.fdb_latexmk 6 | *.fls 7 | *.glg 8 | *.glo 9 | *.gls 10 | *.idx 11 | *.ilg 12 | *.ind 13 | *.ist 14 | *.lof 15 | *.log 16 | *.lot 17 | *.nav 18 | *.nlo 19 | *.out 20 | *.pdfsync 21 | *.ps 22 | *.snm 23 | *.synctex.gz 24 | *.toc 25 | *.vrb 26 | *.maf 27 | *.mtc 28 | *.mtc0 29 | *.xtr 30 | 31 | .DS_Store 32 | 33 | drafting/ .html 34 | 35 | drafting/N3402_UDLsuffixes.fls 36 | 37 | drafting/D3642.pdf 38 | 39 | drafting/N3xxx-UDLpart2-complex.pdf 40 | 41 | drafting/N3xxx-complex_literals.pdf 42 | 43 | drafting/Nxxxx.pdf 44 | 45 | drafting/NXXXX_N3677.html 46 | 47 | Debug 48 | .metadata/ 49 | .settings/ 50 | *Test.xml 51 | .*.html 52 | 53 | workspace/units-1 54 | drafting/other/PA* 55 | drafting/other/acm* 56 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "drafting/P2413"] 2 | path = drafting/P2413 3 | url = git@github.com:leni536/P2413.git 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SC22WG21_Papers 2 | =============== 3 | 4 | My submissions to SC22WG21 C++ ISO/IEC standardization group -------------------------------------------------------------------------------- /drafting/MockingFrameworksConsideredHarmful.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/MockingFrameworksConsideredHarmful.pdf -------------------------------------------------------------------------------- /drafting/Nxxxx_smart_pointers_landscape.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/Nxxxx_smart_pointers_landscape.pdf -------------------------------------------------------------------------------- /drafting/README.md: -------------------------------------------------------------------------------- 1 | My current SC22 WG 21 papers in flight 2 | ====================================== 3 | 4 | see subfolder for accepted or rejected stuff. 5 | 6 | feel free to ask about the papers. 7 | 8 | You can retrieve the official last mailing revision using https://wg21.link/papernumber 9 | 10 | Peter Sommerlad. 11 | -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/D3189_revision_of_n3122.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/D3189_revision_of_n3122.html -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/D3468_revision_of_N3402_UDLsuffixes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/D3468_revision_of_N3402_UDLsuffixes.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/LWG1364_resolved.txt: -------------------------------------------------------------------------------- 1 | 1364. [FCD] It is not clear how exception_ptr is synchronized 2 | 3 | Section: 18.8.6 [propagation] Status: NAD Submitter: Switzerland Opened: 2010-08-25 Last modified: 2010-11-11 4 | 5 | View other active issues in [propagation]. 6 | 7 | View all other issues in [propagation]. 8 | 9 | View all issues with Open status. 10 | 11 | Discussion: 12 | 13 | Addresses CH-19 14 | 15 | It is not clear how exception_ptr is synchronized. 16 | 17 | [ Resolution proposed by ballot comment ] 18 | 19 | Make clear that accessing in different threads multiple exception_ptr objects that all refer to the same exception introduce a race. 20 | 21 | [ Batavia 2010-11-11] 22 | 23 | 17.6.4.8 guarantees that the reference counter, if any, is synchronized. 24 | 25 | proposed resolution to 1369 resolves also this issue for rethrow. 26 | 27 | Proposed resolution: -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/LWG1368_resolution.html: -------------------------------------------------------------------------------- 1 |
2 |

1368. [FCD] Thread safety of std::uncaught_exception()

3 |

Section: 18.8.5 [uncaught] Status: Immediate 4 | Submitter: BSI Opened: 2010-08-25 Last modified: 2010-10-27

5 | 6 |

View all issues with Open status.

7 |

Discussion:

8 |

Addresses GB-73

9 |

10 | The thread safety std::uncaught_exception() and the 11 | result of the function when multiple threads throw 12 | exceptions at the same time are unspecified. To make the 13 | function safe to use in the presence of exceptions in 14 | multiple threads the specification needs to be updated. 15 |

16 | 17 |

[ 18 | Resolution proposed by ballot comment 19 | ]

20 | 21 |

22 | Update this clause to support safe calls from 23 | multiple threads without placing synchronization 24 | requirements on the user. 25 |

26 | 27 | 28 | 29 |

Proposed resolution:

30 | 31 |

change 18.8.5p1 [uncaught] as follows:

32 |

33 | Returns: true after the current thread has initialized initializing 34 | an exception object (15.1) until a handler for the exception (including unexpected() or terminate()) 35 | is activated (15.3). [ Note: This includes stack unwinding (15.2). - end note ] 36 |

37 |
38 | -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N3189.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N3189.html -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N3402_UDLsuffixes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N3402_UDLsuffixes.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N3468.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N3468.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N3531.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N3531.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N3642.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N3642.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N3660.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N3660.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N3779-complex_literals.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N3779-complex_literals.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N3802-apply_tuple.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N3802-apply_tuple.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N3829-apply_tupleV2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N3829-apply_tupleV2.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N3830_scoped_resource.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N3830_scoped_resource.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N3915-apply_tupleV3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N3915-apply_tupleV3.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N3949_scope_guard_unique_resource_v3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N3949_scope_guard_unique_resource_v3.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N4069.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N4069.html -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N4187.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N4187.html -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/N4189_scope_exit_unique_resource_v4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/N4189_scope_exit_unique_resource_v4.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/p0053r5_osyncstream (original).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/p0053r5_osyncstream (original).pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/p0053r6_osyncstream (1)_commentsABQ.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/p0053r6_osyncstream (1)_commentsABQ.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/p0053r7_osyncstream.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/p0053r7_osyncstream.pdf -------------------------------------------------------------------------------- /drafting/accepted_or_obsolete/p0616r0_move_for_accumulators.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/accepted_or_obsolete/p0616r0_move_for_accumulators.pdf -------------------------------------------------------------------------------- /drafting/cleanlatex.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #remove latex temp files 3 | exts="aux bbl blg brf fdb_latexmk fls idx ilg ind lof log lol lot out toc synctex.gz" 4 | for ext in $exts; do 5 | rm *.$ext 6 | done 7 | 8 | -------------------------------------------------------------------------------- /drafting/d1906r0_assignmentopslie.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/d1906r0_assignmentopslie.pdf -------------------------------------------------------------------------------- /drafting/dXXXXr0_SafeAndSaneCplusplusClasses.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/dXXXXr0_SafeAndSaneCplusplusClasses.pdf -------------------------------------------------------------------------------- /drafting/html_contents: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if test $# -lt 1 4 | then 5 | echo "usage: $0 [...]" 1>&2 6 | exit 1 7 | fi 8 | 9 | case $1 in 10 | [2-6]) 11 | depth=$1 12 | shift 13 | ;; 14 | *) 15 | echo "usage: $0 [...]" 1>&2 16 | exit 1 17 | esac 18 | 19 | sed -e ' 20 | // ! d 21 | s|name="|href="#| 22 | s||
| 23 | s|

|| 24 | s|

|\ \ \ \ | 25 | s|

|\ \ \ \ \ \ \ \ | 26 | s|

|\ \ \ \ \ \ \ \ \ \ \ \ | 27 | s|
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | 28 | ' $* 29 | -------------------------------------------------------------------------------- /drafting/html_outline: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | sed -e ' 3 | // ! d 4 | s|\(.*\)<\/a>|\2 [\1]| 5 | s|<\/h[2-6]>|| 6 | s|

|| 7 | s|

| | 8 | s|

| | 9 | s|

| | 10 | s|
| | 11 | ' $* 12 | -------------------------------------------------------------------------------- /drafting/nodiscard_for_the_standard_library.md: -------------------------------------------------------------------------------- 1 | # nodiscard attribute for the standard library 2 | 3 | * `unique_ptr::release()` -- might leak if dropped on the floor 4 | * may be whole class `unique_ptr`, but not sure 5 | * may be `make_unique` but not sure, can not leak 6 | 7 | ### Thread support library: 8 | 9 | * `thread::thread` templated version only risks terminate, if ignored. 10 | * `lock_guard` whole class [thread.lock.guard] 11 | 12 | * `mutex::try_lock` because no other means to assess locked state after trying, risks UB if unlocked not often enough! 13 | * `recursive_mutex::try_lock` because no other means to assess locked state after trying, risks UB if unlocked not often enough! 14 | * `timed_mutex::try_lock_*` because no other means to asses locked state after trying, risks UB if locking again! 15 | * `recursive_timed_mutex::try_lock*` because no other means to assess locked state after trying, risks UB if unlocked not often enough! 16 | 17 | * `shared_mutex::try_lock*` because no other means to assess locked state after trying, risks UB if locking again! 18 | 19 | * `shared_timed_mutex::try_lock_*` because no other means to asses locked state after trying, risks UB if locking again! 20 | 21 | * `scoped_lock` whole class [thread.lock.scoped] -- ignore pathological case of empty pack. 22 | 23 | * `unique_lock` constructors taking mutex (except for defer lock ?) 24 | 25 | * `shared_lock` some constructors: blocking one, try (and adopt?) ones. -------------------------------------------------------------------------------- /drafting/other/ReSYCLatorSchemaSimple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/other/ReSYCLatorSchemaSimple.png -------------------------------------------------------------------------------- /drafting/other/ReSYCLatorSchemaSimpleAbstractTool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/other/ReSYCLatorSchemaSimpleAbstractTool.png -------------------------------------------------------------------------------- /drafting/other/ResultSchemaSimple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/other/ResultSchemaSimple.png -------------------------------------------------------------------------------- /drafting/other/SimpleArchitectureCRITTER.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/other/SimpleArchitectureCRITTER.png -------------------------------------------------------------------------------- /drafting/other/SimpleArchitectureNsight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/other/SimpleArchitectureNsight.png -------------------------------------------------------------------------------- /drafting/other/articleStauber_DHCCPP19.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/other/articleStauber_DHCCPP19.pdf -------------------------------------------------------------------------------- /drafting/other/comment.cut: -------------------------------------------------------------------------------- 1 | To our Codeplay friends who inspired work on CUDA to SYCL transformation and their support during Tobias' master project work. 2 | -------------------------------------------------------------------------------- /drafting/other/cuda-main-a.cpp: -------------------------------------------------------------------------------- 1 | /* Declare device memory pointers */ 2 | float *d_A; 3 | /* Allocate CUDA memory */ 4 | cudaMallocManaged(&d_A, SIZE*sizeof(float)); 5 | /* Synchronize device and host memory */ 6 | cudaDeviceSynchronize(); 7 | /* Free the CUDA memory */ 8 | cudaFree(d_A); -------------------------------------------------------------------------------- /drafting/other/cuda-matrix-call.cpp: -------------------------------------------------------------------------------- 1 | dim3 block_dim; 2 | dim3 grid_dim; 3 | /* initialize block_dim, grid_dim*/ 4 | matrixMultiplicationKernel<<>>(d_A, d_B, d_C, N); -------------------------------------------------------------------------------- /drafting/other/cudadecl.cpp: -------------------------------------------------------------------------------- 1 | __global__ void matrixMultiplicationKernel( 2 | float *A, 3 | float *B, 4 | float *C, 5 | int & N); 6 | -------------------------------------------------------------------------------- /drafting/other/cudamult.cpp: -------------------------------------------------------------------------------- 1 | __global__ void 2 | matrixMultiplicationKernel(float *A, float *B, float *C, int N) { 3 | int ROW = blockIdx.y * blockDim.y + threadIdx.y; 4 | int COL = blockIdx.x * blockDim.x + threadIdx.x; 5 | 6 | float tmpSum = 0; 7 | if (ROW < N && COL < N) { 8 | /* Each thread computes a single element of the block */ 9 | for (int i = 0; i < N; i++) { 10 | tmpSum += A[ROW * N + i] * 11 | B[i * N + COL]; 12 | } 13 | } 14 | C[ROW * N + COL] = tmpSum; 15 | } 16 | -------------------------------------------------------------------------------- /drafting/other/invoke-example.cpp: -------------------------------------------------------------------------------- 1 | kernelname<<>>(args); -------------------------------------------------------------------------------- /drafting/other/sycl-main-a.cpp: -------------------------------------------------------------------------------- 1 | /* Replacement statement with simplified size expression*/ 2 | cl::sycl::buffer d_A(SIZE); -------------------------------------------------------------------------------- /drafting/other/sycl-main-init.cpp: -------------------------------------------------------------------------------- 1 | /* Fill values into A and B */ 2 | { 3 | auto acc_d_B = d_B.get_access(); 4 | auto acc_d_A = d_A.get_access(); 5 | /* Fill values into A and B */ 6 | for (int i { 0 }; i < N; i++) { 7 | for (int j { 0 }; j < N; j++) { 8 | acc_d_B[N * i + j] = cos(j); 9 | acc_d_A[j + N * i] = sin(i); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /drafting/other/sycl-submit.cpp: -------------------------------------------------------------------------------- 1 | { 2 | gpu_selector selector { }; 3 | device selectedDevice { selector }; 4 | queue compute_queue { selectedDevice }; 5 | compute_queue.submit( 6 | [&](handler& cgh) { 7 | auto acc_d_A = d_A.get_access(cgh); 8 | auto acc_d_B = d_B.get_access(cgh); 9 | auto acc_d_C = d_C.get_access(cgh); 10 | cgh.parallel_for( 11 | nd_range<2>(grid_dim * block_dim, block_dim), 12 | [=](nd_item<> item) { 13 | matrixMultiplicationKernel( 14 | item, acc_d_A, acc_d_B, acc_d_C, 15 | N); 16 | } 17 | ); 18 | }); 19 | } -------------------------------------------------------------------------------- /drafting/other/sycldecl1.cpp: -------------------------------------------------------------------------------- 1 | using namespace cl::sycl; 2 | 3 | template 4 | void matrixMultiplicationKernel( 5 | nd_item item, 6 | global_ptr A, 7 | global_ptr B, 8 | global_ptr C, 9 | global_ptr N); 10 | 11 | -------------------------------------------------------------------------------- /drafting/other/sycldecl2.cpp: -------------------------------------------------------------------------------- 1 | //template aliases provided automatically 2 | template 4 | using Accessor = cl::sycl::accessor< 5 | float, dim, mode, 6 | cl::sycl::access::target::global_buffer>; 7 | template 8 | using ReadAccessor = Accessor< 9 | cl::sycl::access::mode::read,dim>; 10 | template 11 | using WriteAccessor = Accessor< 12 | cl::sycl::access::mode::write, dim>; 13 | 14 | template 15 | void matrixMultiplicationKernel( 16 | nd_item item, 17 | ReadAccessor A, 18 | ReadAccessor B, 19 | WriteAccessor C, 20 | int N); 21 | -------------------------------------------------------------------------------- /drafting/other/syclmult.cpp: -------------------------------------------------------------------------------- 1 | template 2 | void matrixMultiplicationKernel( 3 | nd_item item, 4 | global_ptr A, 5 | global_ptr B, 6 | global_ptr C, 7 | global_ptr N) 8 | { 9 | int ROW = item.get_group(1) * 10 | item.get_local_range(1) 11 | + item.get_local_id(1); 12 | int COL = item.get_group(0) * 13 | item.get_local_range(0) 14 | + item.get_local_id(0); 15 | 16 | float tmpSum = 0; 17 | if (ROW < N && COL < N) { 18 | for (int i = 0; i < N; i++) { 19 | tmpSum += *(A + ROW * N + i) * 20 | *(B + i * N + COL); 21 | } 22 | } 23 | *(C + ROW * N + COL) = tmpSum; 24 | } -------------------------------------------------------------------------------- /drafting/p0052r10_scope_exit_unique_resource.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/p0052r10_scope_exit_unique_resource.pdf -------------------------------------------------------------------------------- /drafting/p0407r2_allocator_stringbuf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/p0407r2_allocator_stringbuf.pdf -------------------------------------------------------------------------------- /drafting/p0408r7_stringview_stringbuf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/p0408r7_stringview_stringbuf.pdf -------------------------------------------------------------------------------- /drafting/p0448r4_spanstreams.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/p0448r4_spanstreams.pdf -------------------------------------------------------------------------------- /drafting/p0647r1_scale_for_ratio.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/p0647r1_scale_for_ratio.pdf -------------------------------------------------------------------------------- /drafting/p0753r2_osyncstream_manipulators.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/p0753r2_osyncstream_manipulators.pdf -------------------------------------------------------------------------------- /drafting/p0984R0_APRIL_FOOL.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/p0984R0_APRIL_FOOL.pdf -------------------------------------------------------------------------------- /drafting/p1410r0_remove_strstream.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/p1410r0_remove_strstream.pdf -------------------------------------------------------------------------------- /drafting/p1412r0_User_defined_special_members_for_safety.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/p1412r0_User_defined_special_members_for_safety.pdf -------------------------------------------------------------------------------- /drafting/p1771r1_nodiscard_for_constructors.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/p1771r1_nodiscard_for_constructors.pdf -------------------------------------------------------------------------------- /drafting/pXXXXr0_towards_std_units.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/pXXXXr0_towards_std_units.pdf -------------------------------------------------------------------------------- /drafting/rejected/N3974_polymorphic_deleter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/rejected/N3974_polymorphic_deleter.pdf -------------------------------------------------------------------------------- /drafting/rejected/p0506r2_stringview_parameters.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/drafting/rejected/p0506r2_stringview_parameters.pdf -------------------------------------------------------------------------------- /drafting/styles.tex: -------------------------------------------------------------------------------- 1 | ../../draft/source/styles.tex -------------------------------------------------------------------------------- /drafting/tables.tex: -------------------------------------------------------------------------------- 1 | ../../draft/source/tables.tex -------------------------------------------------------------------------------- /presentations/P2264-presentation.md: -------------------------------------------------------------------------------- 1 | # Make assert() macro user friendly 2 | 3 | ## problem in C++ 4 | 5 | ```cpp 6 | #include 7 | #include 8 | 9 | using Int=int; 10 | 11 | void f() { 12 | assert(std::is_same::value); // a surprisig compile error 13 | } 14 | ``` 15 | 16 | ## problem in C 17 | 18 | ```cpp 19 | #include 20 | 21 | void f() { 22 | assert((int[2]){1,2}[0]); // compile error 23 | struct A {int x,y;}; 24 | assert((struct A){1,2}.x); // compile error 25 | } 26 | ``` 27 | 28 | 29 | ## proposed solution (NDEBUG) 30 | 31 | ```{.cpp} 32 | #define assert(...) ((void)0) 33 | ``` 34 | 35 | 36 | ## proposed solution C 37 | 38 | ```{.cpp} 39 | static inline int 40 | __check_single_argument_passed_to_assert(int b) { return b; } 41 | #define assert(...) \ 42 | ((void) (__check_single_argument_passed_to_assert(__VA_ARGS__) ?\ 43 | ((void)0) : __assert (#_VA_ARGS__, __FILE__, __LINE__))) 44 | ``` 45 | 46 | ## proposed solution C++ 47 | 48 | ```{.cpp} 49 | #define assert(...) \ 50 | ((void) (bool( __VA_ARGS__) ? 51 | ((void)0) : __assert (#_VA_ARGS__, __FILE__, __LINE__))) 52 | 53 | ```` 54 | 55 | ## Experience 56 | 57 | ::: incremental 58 | 59 | * changed local system header accordingly 60 | * compiled major open source software packages with it successfully (homebrew installation on older macos, which requires compile-yourself) 61 | * python, gcc, llvm, inkscape,... 62 | * And I know it was used, because compilation failed when I had bugs... 63 | 64 | ::: -------------------------------------------------------------------------------- /presentations/Pres3974.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/presentations/Pres3974.pdf -------------------------------------------------------------------------------- /presentations/generated.md: -------------------------------------------------------------------------------- 1 | # Make assert() macro user friendly 2 | 3 | ## problem in C++ 4 | 5 | ```cpp 6 | #include 7 | #include 8 | 9 | using Int=int; 10 | 11 | void f() { 12 | assert(std::is_same::value); // a surprisig compile error 13 | } 14 | ``` 15 | 16 | ## problem in C 17 | 18 | ```cpp 19 | #include 20 | 21 | void f() { 22 | assert((int[2]){1,2}[0]); // compile error 23 | struct A {int x,y;}; 24 | assert((struct A){1,2}.x); // compile error 25 | } 26 | ``` 27 | 28 | 29 | ## proposed solution (NDEBUG) 30 | 31 | ```{.cpp} 32 | #define assert(...) ((void)0) 33 | ``` 34 | 35 | 36 | ## proposed solution C 37 | 38 | ```{.cpp} 39 | static inline int 40 | __check_single_argument_passed_to_assert(int b) { return b; } 41 | #define assert(...) \ 42 | ((void) (__check_single_argument_passed_to_assert(__VA_ARGS__) ?\ 43 | ((void)0) : __assert (#_VA_ARGS__, __FILE__, __LINE__))) 44 | ``` 45 | 46 | ## proposed solution C++ 47 | 48 | ```{.cpp} 49 | #define assert(...) \ 50 | ((void) (bool( __VA_ARGS__) ? 51 | ((void)0) : __assert (#_VA_ARGS__, __FILE__, __LINE__))) 52 | 53 | ```` 54 | 55 | ## Experience 56 | 57 | ::: incremental 58 | 59 | * changed local system header accordingly 60 | * compiled major open source software packages with it successfully (homebrew installation on older macos, which requires compile-yourself) 61 | * python, gcc, llvm, inkscape,... 62 | * And I know it was used, because compilation failed when I had bugs... 63 | 64 | ::: 65 | -------------------------------------------------------------------------------- /presentations/include.awk: -------------------------------------------------------------------------------- 1 | /^\$include / { system("awk -f include.awk " $2); next;} 2 | { print; } 3 | -------------------------------------------------------------------------------- /presentations/isocpp.xml: -------------------------------------------------------------------------------- 1 | ../../../talks/Firmenkurse/CPPIntro/isocpp.xml -------------------------------------------------------------------------------- /presentations/reveal.js: -------------------------------------------------------------------------------- 1 | ../../../talks/reveal.js/ -------------------------------------------------------------------------------- /presentations/sommerlad2019_special_member_functions.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/presentations/sommerlad2019_special_member_functions.key -------------------------------------------------------------------------------- /presentations/sommerlad2019_special_member_functions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/presentations/sommerlad2019_special_member_functions.pdf -------------------------------------------------------------------------------- /presentations/toreveal.sh: -------------------------------------------------------------------------------- 1 | ../../../talks/Firmenkurse/CPPIntro/toreveal.sh -------------------------------------------------------------------------------- /workspace/AprilFool2018/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | AprilFool2018 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/AprilFool2018/AprilFool2018.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /workspace/AprilFool2018/LICENSE.txt: -------------------------------------------------------------------------------- 1 | This is free to take by whomever wants it 2 | WITHOUT ANY WARRANTY FOR ANYTHING! 3 | 4 | (c) Peter Sommerlad April 1st 2018 -------------------------------------------------------------------------------- /workspace/AprilFool2018/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * Copyright (c) 2008-2017 Peter Sommerlad, Emanuel Graf, IFS 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | * 24 | *********************************************************************************/ 25 | 26 | #ifndef CUTE_VERSION_H_ 27 | #define CUTE_VERSION_H_ 28 | 29 | #define CUTE_LIB_VERSION "2.2.1" 30 | 31 | #endif /*CUTE_VERSION_H_*/ 32 | -------------------------------------------------------------------------------- /workspace/ES.46.checker_test/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ES.46.checker_test 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | org.eclipse.cdt.core.cnature 23 | org.eclipse.cdt.core.ccnature 24 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 26 | 27 | 28 | -------------------------------------------------------------------------------- /workspace/ES.46.checker_test/src/ES.46.checker_test.cpp: -------------------------------------------------------------------------------- 1 | //============================================================================ 2 | // Name : checker_test.cpp 3 | // Author : 4 | // Version : 5 | // Copyright : Your copyright notice 6 | // Description : Hello World in C++, Ansi-style 7 | //============================================================================ 8 | 9 | #include 10 | 11 | 12 | 13 | #include 14 | 15 | 16 | struct on_exit_policy 17 | { 18 | bool execute_{ true }; 19 | 20 | void release() noexcept 21 | { 22 | execute_ = false; 23 | } 24 | 25 | bool should_execute() noexcept // constificator fails 26 | { 27 | return execute_; 28 | } 29 | }; 30 | 31 | 32 | template 33 | class bla{ 34 | template 35 | friend 36 | auto make_unique_resource_checked(RM &&r, const S &invalid, DM &&d) 37 | noexcept(noexcept(make_unique_resource(std::forward(r), std::forward(d)))); 38 | 39 | bla(T const &){} 40 | [[gsl::suppress("Rc-explicit")]] 41 | bla(T&&) noexcept (1 + 1) 42 | { 43 | } 44 | 45 | }; 46 | class foo{ 47 | foo(foo const &){} 48 | foo(int){} 49 | }; 50 | using namespace std; 51 | 52 | int main() { 53 | cout << "!!!Hello World!!!" ; // prints !!!Hello World!!! 54 | return 0; 55 | } 56 | -------------------------------------------------------------------------------- /workspace/Operators/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Operators 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/Operators/Operators.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /workspace/Operators/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/Operators/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | 38 | #if __cplusplus >= 201402L 39 | #define USE_STD14 40 | #endif 41 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 42 | -------------------------------------------------------------------------------- /workspace/Operators/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &, char const * /*info*/, size_t /*n_of_tests*/){} 28 | void end(suite const &, char const * /*info*/){} 29 | void start(test const &){} 30 | void success(test const &,char const * /*msg*/){} 31 | void failure(test const &,test_failure const &){} 32 | void error(test const &,char const * /*what*/){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/Operators/cute/cute_suite.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_SUITE_H_ 21 | #define CUTE_SUITE_H_ 22 | #include "cute_test.h" 23 | #include 24 | namespace cute { 25 | typedef std::vector suite; 26 | // convenience operator for appending to suites, might not be right 27 | // deprecated, not supported by plug-in, not needed with Eclipse plug-in 28 | inline 29 | suite &operator+=(suite &left, suite const &right){ 30 | left.insert(left.end(),right.begin(),right.end()); 31 | return left; 32 | } 33 | inline 34 | suite &operator+=(suite &left, test const &right){ 35 | left.push_back(right); 36 | return left; 37 | } 38 | } 39 | #endif /*CUTE_SUITE_H_*/ 40 | -------------------------------------------------------------------------------- /workspace/Operators/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.1" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/Operators/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/P0052_scope_exit/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | P0052_scope_exit 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/P0052_scope_exit/README.md: -------------------------------------------------------------------------------- 1 | This Cevelop project contains an example implementation for P0052 scope guards and unique_resource. 2 | 3 | The src directory contains the source code (c) 2016-2017 Eric Niebler and Peter Sommerlad and is available under the MIT license. 4 | 5 | The cute directory contains the CUTE unit testing library currently under LGPLv3 (we plan to change that to MIT license as well). -------------------------------------------------------------------------------- /workspace/P0052_scope_exit/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * Copyright (c) 2008-2018 Peter Sommerlad, Emanuel Graf, IFS 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | * 24 | *********************************************************************************/ 25 | 26 | #ifndef CUTE_VERSION_H_ 27 | #define CUTE_VERSION_H_ 28 | 29 | #define CUTE_LIB_VERSION "2.2.1" 30 | 31 | #endif /*CUTE_VERSION_H_*/ 32 | -------------------------------------------------------------------------------- /workspace/P0052_scope_exit/demo_hello.txt: -------------------------------------------------------------------------------- 1 | Hello world 2 | -------------------------------------------------------------------------------- /workspace/P0052_scope_exit/src/license.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016-2017 Eric Niebler and Peter Sommerlad 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /workspace/Psst/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Psst 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/Psst/Psst.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | testWaitCounter: 3 == c.val expected: 3 but was: 2 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /workspace/Psst/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * Copyright (c) 2008-2017 Peter Sommerlad, Emanuel Graf, IFS 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | * 24 | *********************************************************************************/ 25 | 26 | #ifndef CUTE_VERSION_H_ 27 | #define CUTE_VERSION_H_ 28 | 29 | #define CUTE_LIB_VERSION "2.2.1" 30 | 31 | #endif /*CUTE_VERSION_H_*/ 32 | -------------------------------------------------------------------------------- /workspace/SaneAndSafeExamples/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | SaneAndSafeExamples 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/SaneAndSafeExamples/SaneAndSafeExamples.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | InsaneBool: "" == theanswer expected: but was: no 6 | 7 | 8 | 9 | 10 | InterestingSetDouble: v.size()*v.size() == s.size() expected: 16 but was: 1 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /workspace/SaneAndSafeExamples/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * Copyright (c) 2008-2018 Peter Sommerlad, Emanuel Graf, IFS 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | * 24 | *********************************************************************************/ 25 | 26 | #ifndef CUTE_VERSION_H_ 27 | #define CUTE_VERSION_H_ 28 | 29 | #define CUTE_LIB_VERSION "2.2.1" 30 | 31 | #endif /*CUTE_VERSION_H_*/ 32 | -------------------------------------------------------------------------------- /workspace/Test_basic_osyncstream/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Test_basic_osyncstream 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/Test_basic_osyncstream/.suppressed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/workspace/Test_basic_osyncstream/.suppressed -------------------------------------------------------------------------------- /workspace/Test_basic_osyncstream/README.md: -------------------------------------------------------------------------------- 1 | # This is an example implementation of the proposed basic_osyncstream from P0053 for C++17. 2 | 3 | It might contain bugs and races but should work. Feedback welcome. 4 | 5 | The last testcase fails deliberately to be able to view the output generated from several threads. 6 | 7 | Best loaded into Cevelop (www.cevelop.com) for compilation and running the tests. 8 | 9 | (c) 2016 Peter Sommerlad 10 | -------------------------------------------------------------------------------- /workspace/Test_basic_osyncstream/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/Test_basic_osyncstream/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 38 | -------------------------------------------------------------------------------- /workspace/Test_basic_osyncstream/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &s, char const *info, size_t n_of_tests){} 28 | void end(suite const &s, char const *info){} 29 | void start(test const &t){} 30 | void success(test const &t,char const *msg){} 31 | void failure(test const &t,test_failure const &e){} 32 | void error(test const &t,char const *what){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/Test_basic_osyncstream/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.0" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/Test_basic_osyncstream/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/Test_basic_osyncstream/src/globalstreambuflocks.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * globalstreambuflocks.cpp 3 | * 4 | * Created on: 22.06.2016 5 | * Author: sop 6 | */ 7 | 8 | #include "globalstreambuflocks.h" 9 | 10 | namespace detail__ { 11 | 12 | 13 | global_streambuf_locks thelocks{}; 14 | 15 | 16 | } /* namespace detail__ */ 17 | -------------------------------------------------------------------------------- /workspace/Test_basic_osyncstream/src/globalstreambuflocks.h: -------------------------------------------------------------------------------- 1 | #ifndef GLOBALSTREAMBUFLOCKS_H_ 2 | #define GLOBALSTREAMBUFLOCKS_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | namespace detail__ { 10 | using spmx=std::shared_ptr; 11 | 12 | class global_streambuf_locks { 13 | mutable std::mutex mx{}; 14 | std::unordered_map> thelocks{}; 15 | using guard=std::lock_guard; 16 | public: 17 | spmx get_lock(void *sbufptr){ 18 | if (sbufptr==nullptr) return {}; 19 | guard lk{mx}; 20 | spmx result{}; 21 | std::weak_ptr& mxptr=thelocks[sbufptr]; 22 | if (mxptr.expired()) { 23 | mxptr=result=std::make_shared(); 24 | } else { 25 | result=mxptr.lock(); 26 | } 27 | return result; 28 | } 29 | void release_lock(spmx& sp,void *sbufptr){ 30 | if (sp == nullptr && sbufptr == nullptr) return; 31 | guard lx{mx}; 32 | auto iter = thelocks.find(sbufptr); 33 | sp.reset(); 34 | if (iter != thelocks.end() && iter->second.expired()){ 35 | thelocks.erase(iter); 36 | } 37 | } 38 | // testing only 39 | auto size() const { 40 | guard lx{mx}; 41 | return thelocks.size(); 42 | } 43 | }; 44 | 45 | extern global_streambuf_locks thelocks; 46 | 47 | } /* namespace detail__ */ 48 | 49 | #endif /* GLOBALSTREAMBUFLOCKS_H_ */ 50 | -------------------------------------------------------------------------------- /workspace/Test_basic_spanbuf/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Test_basic_spanbuf 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/Test_basic_spanbuf/Test_basic_spanbuf.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /workspace/Test_basic_spanbuf/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/Test_basic_spanbuf/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 38 | -------------------------------------------------------------------------------- /workspace/Test_basic_spanbuf/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &, char const * /*info*/, size_t /*n_of_tests*/){} 28 | void end(suite const &, char const * /*info*/){} 29 | void start(test const &){} 30 | void success(test const &,char const * /*msg*/){} 31 | void failure(test const &,test_failure const &){} 32 | void error(test const &,char const * /*what*/){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/Test_basic_spanbuf/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.1" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/Test_basic_spanbuf/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/Test_basic_spanbuf/src/spanstream.cpp: -------------------------------------------------------------------------------- 1 | #include "spanstream.h" 2 | 3 | // instantiate templates to sidestep multiple instantiations 4 | namespace std{ namespace experimental{ 5 | template class basic_spanbuf; 6 | template class basic_ispanstream; 7 | template class basic_ospanstream; 8 | template class basic_spanstream; 9 | 10 | template class basic_spanbuf; 11 | template class basic_ispanstream; 12 | template class basic_ospanstream; 13 | template class basic_spanstream; 14 | }} 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /workspace/Test_basic_stringbuf_efficient/.gitignore: -------------------------------------------------------------------------------- 1 | /Release/ 2 | -------------------------------------------------------------------------------- /workspace/Test_basic_stringbuf_efficient/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Test_basic_stringbuf_efficient 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/Test_basic_stringbuf_efficient/Test_basic_stringbuf_efficient.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /workspace/Test_clang_p0407_p0408/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Test_clang_p0407_p0408 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/Test_clang_p0407_p0408/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * Copyright (c) 2008-2017 Peter Sommerlad, Emanuel Graf, IFS 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | * 24 | *********************************************************************************/ 25 | 26 | #ifndef CUTE_VERSION_H_ 27 | #define CUTE_VERSION_H_ 28 | 29 | #define CUTE_LIB_VERSION "2.2.1" 30 | 31 | #endif /*CUTE_VERSION_H_*/ 32 | -------------------------------------------------------------------------------- /workspace/UnitsTest/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | UnitsTest 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/UnitsTest/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/UnitsTest/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | 38 | #if __cplusplus >= 201402L 39 | #define USE_STD14 40 | #endif 41 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 42 | -------------------------------------------------------------------------------- /workspace/UnitsTest/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &, char const * /*info*/, size_t /*n_of_tests*/){} 28 | void end(suite const &, char const * /*info*/){} 29 | void start(test const &){} 30 | void success(test const &,char const * /*msg*/){} 31 | void failure(test const &,test_failure const &){} 32 | void error(test const &,char const * /*what*/){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/UnitsTest/cute/cute_suite.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_SUITE_H_ 21 | #define CUTE_SUITE_H_ 22 | #include "cute_test.h" 23 | #include 24 | namespace cute { 25 | typedef std::vector suite; 26 | // convenience operator for appending to suites, might not be right 27 | // deprecated, not supported by plug-in, not needed with Eclipse plug-in 28 | inline 29 | suite &operator+=(suite &left, suite const &right){ 30 | left.insert(left.end(),right.begin(),right.end()); 31 | return left; 32 | } 33 | inline 34 | suite &operator+=(suite &left, test const &right){ 35 | left.push_back(right); 36 | return left; 37 | } 38 | } 39 | #endif /*CUTE_SUITE_H_*/ 40 | -------------------------------------------------------------------------------- /workspace/UnitsTest/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.1" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/UnitsTest/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/UnitsTest/src/CompileTimeArithmetic.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPILETIMEARITHMETIC_H_ 2 | #define COMPILETIMEARITHMETIC_H_ 3 | 4 | #include "cute_suite.h" 5 | 6 | extern cute::suite make_suite_CompileTimeArithmetic(); 7 | 8 | #endif /* COMPILETIMEARITHMETIC_H_ */ 9 | -------------------------------------------------------------------------------- /workspace/UnitsTest/src/Constexpr.h: -------------------------------------------------------------------------------- 1 | #ifndef CONSTEXPR_H_ 2 | #define CONSTEXPR_H_ 3 | 4 | #include "cute_suite.h" 5 | 6 | extern cute::suite make_suite_Constexpr(); 7 | 8 | #endif /* CONSTEXPR_H_ */ 9 | -------------------------------------------------------------------------------- /workspace/UnitsTest/src/TypeTraits.h: -------------------------------------------------------------------------------- 1 | #ifndef TYPETRAITS_H_ 2 | #define TYPETRAITS_H_ 3 | 4 | #include "cute_suite.h" 5 | 6 | extern cute::suite make_suite_TypeTraits(); 7 | 8 | #endif /* TYPETRAITS_H_ */ 9 | -------------------------------------------------------------------------------- /workspace/UnitsTest/src/UnitContainer.h: -------------------------------------------------------------------------------- 1 | #ifndef UNITCONTAINER_H_ 2 | #define UNITCONTAINER_H_ 3 | 4 | #include "cute_suite.h" 5 | 6 | extern cute::suite make_suite_UnitContainer(); 7 | 8 | #endif /* UNITCONTAINER_H_ */ 9 | -------------------------------------------------------------------------------- /workspace/UnitsTest/src/UnitConversion.h: -------------------------------------------------------------------------------- 1 | #ifndef UNITCONVERSION_H_ 2 | #define UNITCONVERSION_H_ 3 | 4 | #include "cute_suite.h" 5 | 6 | extern cute::suite make_suite_UnitConversion(); 7 | 8 | #endif /* UNITCONVERSION_H_ */ 9 | -------------------------------------------------------------------------------- /workspace/UnitsTest/src/UnitManipulators.h: -------------------------------------------------------------------------------- 1 | #ifndef UNITMANIPULATORS_H_ 2 | #define UNITMANIPULATORS_H_ 3 | 4 | #include "cute_suite.h" 5 | 6 | extern cute::suite make_suite_UnitManipulators(); 7 | 8 | #endif /* UNITMANIPULATORS_H_ */ 9 | -------------------------------------------------------------------------------- /workspace/UnitsTest/src/UnitMath.h: -------------------------------------------------------------------------------- 1 | #ifndef UNITMATH_H_ 2 | #define UNITMATH_H_ 3 | 4 | #include "cute_suite.h" 5 | 6 | extern cute::suite make_suite_UnitMath(); 7 | 8 | #endif /* UNITMATH_H_ */ 9 | -------------------------------------------------------------------------------- /workspace/accuscc113/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | accuscc113 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | org.eclipse.cdt.core.cnature 23 | org.eclipse.cdt.core.ccnature 24 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 26 | 27 | 28 | -------------------------------------------------------------------------------- /workspace/accuscc113/src/accuscc113.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | // find the least value in the arguments 5 | template 6 | T least(T first, Ts... rest) 7 | { 8 | std::sort(&first, 9 | &first + 1 + sizeof...(rest)); 10 | return first; 11 | } 12 | 13 | int main() 14 | { 15 | std::cout << "least(1): " 16 | << least(1) << std::endl; 17 | std::cout << "least(1,2,3,4): " 18 | << least(1,2,3,4) << std::endl; 19 | std::cout << "least(10,9,8,7,6,5,4,3,2,1): " 20 | << least(10,9,8,7,6,5,4,3,2,1) 21 | << std::endl; 22 | } 23 | -------------------------------------------------------------------------------- /workspace/accuscc113_correct/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | accuscc113_correct 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/accuscc113_correct/accuscc113_correct.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /workspace/accuscc113_correct/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * Copyright (c) 2008-2018 Peter Sommerlad, Emanuel Graf, IFS 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | * 24 | *********************************************************************************/ 25 | 26 | #ifndef CUTE_VERSION_H_ 27 | #define CUTE_VERSION_H_ 28 | 29 | #define CUTE_LIB_VERSION "2.2.1" 30 | 31 | #endif /*CUTE_VERSION_H_*/ 32 | -------------------------------------------------------------------------------- /workspace/accuscc113_correct/src/Test.cpp: -------------------------------------------------------------------------------- 1 | #include "cute.h" 2 | #include "ide_listener.h" 3 | #include "xml_listener.h" 4 | #include "cute_runner.h" 5 | #include 6 | #include 7 | 8 | template 9 | constexpr auto least(T i, Ts...js) { 10 | static_assert((std::is_same_v&&...)); 11 | std::initializer_list const il{i, js...}; 12 | return *std::min_element(begin(il),end(il)); 13 | } 14 | 15 | void simpleminimum() { 16 | ASSERT_EQUAL(1,least(1)); 17 | } 18 | void multipleminimum(){ 19 | ASSERT_EQUAL(1,least(2,1,3)); 20 | } 21 | void testfromacc113(){ 22 | ASSERT_EQUAL(1,least(10,9,8,7,6,5,4,3,2,1)); 23 | } 24 | 25 | 26 | 27 | bool runAllTests(int argc, char const *argv[]) { 28 | cute::suite s { }; 29 | //TODO add your test here 30 | s.push_back(CUTE(simpleminimum)); 31 | s.push_back(CUTE(multipleminimum)); 32 | s.push_back(CUTE(testfromacc113)); 33 | cute::xml_file_opener xmlfile(argc, argv); 34 | cute::xml_listener> lis(xmlfile.out); 35 | auto runner = cute::makeRunner(lis, argc, argv); 36 | bool success = runner(s, "AllTests"); 37 | return success; 38 | } 39 | 40 | int main(int argc, char const *argv[]) { 41 | return runAllTests(argc, argv) ? EXIT_SUCCESS : EXIT_FAILURE; 42 | } 43 | -------------------------------------------------------------------------------- /workspace/antelope_book_strings/.gitignore: -------------------------------------------------------------------------------- 1 | /Release/ 2 | -------------------------------------------------------------------------------- /workspace/antelope_book_strings/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | antelope_book_strings 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | org.eclipse.cdt.core.cnature 23 | org.eclipse.cdt.core.ccnature 24 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 26 | 27 | 28 | -------------------------------------------------------------------------------- /workspace/antelope_book_strings/gettimeofday.h: -------------------------------------------------------------------------------- 1 | # if defined _WIN32 2 | # include 3 | # include 4 | 5 | struct timezone 6 | { 7 | int tz_minuteswest; /* minutes W of Greenwich */ 8 | int tz_dsttime; /* type of dst correction */ 9 | }; 10 | 11 | int gettimeofday(struct timeval *tv, struct timezone *tz); 12 | # else // Linux 13 | # include 14 | # endif 15 | -------------------------------------------------------------------------------- /workspace/antelope_book_strings/stopwatch11.h: -------------------------------------------------------------------------------- 1 | # ifndef STOPWATCH11_H 2 | # define STOPWATCH11_H 3 | # include 4 | //PS: ticks == ms 5 | using namespace std::chrono; 6 | class TimerBaseChrono { 7 | public: 8 | // clears the timer 9 | TimerBaseChrono() : m_start(system_clock::time_point::min()) { } 10 | 11 | // clears the timer 12 | void Clear() { 13 | m_start = system_clock::time_point::min(); 14 | } 15 | 16 | // returns true if the timer is running 17 | bool IsStarted() const { 18 | return (m_start != system_clock::time_point::min()); 19 | } 20 | 21 | // start the timer 22 | void Start() { m_start = std::chrono::system_clock::now(); } 23 | 24 | // get the number of milliseconds since the timer was started 25 | using tick_t=unsigned long; 26 | tick_t GetTicks() const { 27 | if (IsStarted()) { 28 | system_clock::duration diff; 29 | diff = system_clock::now() - m_start; 30 | return (tick_t)(duration_cast(diff).count()); 31 | } 32 | return 0; 33 | } 34 | tick_t GetMs() const { 35 | return GetTicks(); 36 | } 37 | static tick_t GetMs(tick_t ticks) { 38 | return ticks; 39 | } 40 | private: 41 | std::chrono::system_clock::time_point m_start; 42 | }; 43 | # include "stopwatch.h" 44 | typedef basic_stopwatch Stopwatch; 45 | # endif 46 | -------------------------------------------------------------------------------- /workspace/antelope_book_strings/strings.h: -------------------------------------------------------------------------------- 1 | # include 2 | 3 | int test_remove_ctrl(int test_no); -------------------------------------------------------------------------------- /workspace/antelope_book_strings/test_driver.cpp: -------------------------------------------------------------------------------- 1 | # include "test_driver.h" 2 | 3 | void test_driver(testfunc flist[], int argc, char** argv){ 4 | while(*flist){ 5 | test_driver(*flist,argc,argv); 6 | ++flist; 7 | } 8 | } 9 | 10 | void test_driver(testfunc f, int argc, char** argv){ 11 | 12 | } 13 | -------------------------------------------------------------------------------- /workspace/antelope_book_strings/test_driver.h: -------------------------------------------------------------------------------- 1 | typedef int (*testfunc)(int, unsigned long); 2 | void test_driver(testfunc flist[], int argc=0, char** argv=0); 3 | void test_driver(testfunc f, int argc=0, char** argv=0); 4 | -------------------------------------------------------------------------------- /workspace/antelope_timing_tests/.gitignore: -------------------------------------------------------------------------------- 1 | /Release/ 2 | -------------------------------------------------------------------------------- /workspace/antelope_timing_tests/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | antelope_timing_tests 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/antelope_timing_tests/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/antelope_timing_tests/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | 38 | #if __cplusplus >= 201402L 39 | #define USE_STD14 40 | #endif 41 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 42 | -------------------------------------------------------------------------------- /workspace/antelope_timing_tests/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &, char const * /*info*/, size_t /*n_of_tests*/){} 28 | void end(suite const &, char const * /*info*/){} 29 | void start(test const &){} 30 | void success(test const &,char const * /*msg*/){} 31 | void failure(test const &,test_failure const &){} 32 | void error(test const &,char const * /*what*/){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/antelope_timing_tests/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.1" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/antelope_timing_tests/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/p0053_basic_osyncstreambuf/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | p0053_basic_osyncstreambuf 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/p0053_basic_osyncstreambuf/.suppressed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeterSommerlad/SC22WG21_Papers/7f9c58dabea6872f86f7960157e2ca38880e14cb/workspace/p0053_basic_osyncstreambuf/.suppressed -------------------------------------------------------------------------------- /workspace/p0053_basic_osyncstreambuf/README.md: -------------------------------------------------------------------------------- 1 | # This is an example implementation of the proposed basic_osyncstream from P0053 for C++17. 2 | 3 | It might contain bugs and races but should work. Feedback welcome. 4 | 5 | The last testcase fails deliberately to be able to view the output generated from several threads. 6 | 7 | Best loaded into Cevelop (www.cevelop.com) for compilation and running the tests. 8 | 9 | (c) 2016 Peter Sommerlad 10 | -------------------------------------------------------------------------------- /workspace/p0053_basic_osyncstreambuf/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/p0053_basic_osyncstreambuf/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 38 | -------------------------------------------------------------------------------- /workspace/p0053_basic_osyncstreambuf/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &s, char const *info, size_t n_of_tests){} 28 | void end(suite const &s, char const *info){} 29 | void start(test const &t){} 30 | void success(test const &t,char const *msg){} 31 | void failure(test const &t,test_failure const &e){} 32 | void error(test const &t,char const *what){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/p0053_basic_osyncstreambuf/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.0" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/p0053_basic_osyncstreambuf/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/p0053_basic_osyncstreambuf/src/globalstreambuflocks.cpp: -------------------------------------------------------------------------------- 1 | /* -*- mode: c++; c-basic-offset: 2; tab-width: 2 -*- 2 | * 3 | * globalstreambuflocks.cpp 4 | * 5 | * Created on: 22.06.2016 6 | * Author: sop 7 | */ 8 | 9 | #include "globalstreambuflocks.h" 10 | 11 | namespace detail__ { 12 | 13 | 14 | global_streambuf_locks thelocks{}; 15 | 16 | 17 | } /* namespace detail__ */ 18 | -------------------------------------------------------------------------------- /workspace/p0053_basic_osyncstreambuf/src/globalstreambuflocks.h: -------------------------------------------------------------------------------- 1 | // -*- mode: c++; c-basic-offset: 2; tab-width: 2 -*- 2 | 3 | #ifndef GLOBALSTREAMBUFLOCKS_H_ 4 | #define GLOBALSTREAMBUFLOCKS_H_ 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | namespace detail__ { 12 | using spmx=std::shared_ptr; 13 | 14 | class global_streambuf_locks { 15 | mutable std::mutex mx{}; 16 | std::unordered_map> thelocks{}; 17 | using guard=std::lock_guard; 18 | public: 19 | spmx get_lock(void *sbufptr){ 20 | if (sbufptr==nullptr) return {}; 21 | guard lk{mx}; 22 | spmx result{}; 23 | std::weak_ptr& mxptr=thelocks[sbufptr]; 24 | if (mxptr.expired()) { 25 | mxptr=result=std::make_shared(); 26 | } else { 27 | result=mxptr.lock(); 28 | } 29 | return result; 30 | } 31 | void release_lock(spmx& sp,void *sbufptr){ 32 | if (sp == nullptr && sbufptr == nullptr) return; 33 | guard lx{mx}; 34 | auto iter = thelocks.find(sbufptr); 35 | sp.reset(); 36 | if (iter != thelocks.end() && iter->second.expired()){ 37 | thelocks.erase(iter); 38 | } 39 | } 40 | // testing only 41 | auto size() const { 42 | guard lx{mx}; 43 | return thelocks.size(); 44 | } 45 | }; 46 | 47 | extern global_streambuf_locks thelocks; 48 | 49 | } /* namespace detail__ */ 50 | 51 | #endif /* GLOBALSTREAMBUFLOCKS_H_ */ 52 | -------------------------------------------------------------------------------- /workspace/p0448/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | p0448 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/p0448/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/p0448/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | 38 | #if __cplusplus >= 201402L 39 | #define USE_STD14 40 | #endif 41 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 42 | -------------------------------------------------------------------------------- /workspace/p0448/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &, char const * /*info*/, size_t /*n_of_tests*/){} 28 | void end(suite const &, char const * /*info*/){} 29 | void start(test const &){} 30 | void success(test const &,char const * /*msg*/){} 31 | void failure(test const &,test_failure const &){} 32 | void error(test const &,char const * /*what*/){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/p0448/cute/cute_suite.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_SUITE_H_ 21 | #define CUTE_SUITE_H_ 22 | #include "cute_test.h" 23 | #include 24 | namespace cute { 25 | typedef std::vector suite; 26 | // convenience operator for appending to suites, might not be right 27 | // deprecated, not supported by plug-in, not needed with Eclipse plug-in 28 | inline 29 | suite &operator+=(suite &left, suite const &right){ 30 | left.insert(left.end(),right.begin(),right.end()); 31 | return left; 32 | } 33 | inline 34 | suite &operator+=(suite &left, test const &right){ 35 | left.push_back(right); 36 | return left; 37 | } 38 | } 39 | #endif /*CUTE_SUITE_H_*/ 40 | -------------------------------------------------------------------------------- /workspace/p0448/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.1" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/p0448/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/p0448/p0448.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /workspace/p0448/src/spanstream.cpp: -------------------------------------------------------------------------------- 1 | #include "spanstream.h" 2 | 3 | // instantiate templates to sidestep multiple instantiations 4 | namespace std{ namespace experimental{ 5 | template class basic_spanbuf; 6 | template class basic_ispanstream; 7 | template class basic_ospanstream; 8 | template class basic_spanstream; 9 | 10 | template class basic_spanbuf; 11 | template class basic_ispanstream; 12 | template class basic_ospanstream; 13 | template class basic_spanstream; 14 | }} 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /workspace/p0506_string_view_params_stdlib/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | p0506_string_view_params_stdlib 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/p0506_string_view_params_stdlib/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/p0506_string_view_params_stdlib/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | 38 | #if __cplusplus >= 201402L 39 | #define USE_STD14 40 | #endif 41 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 42 | -------------------------------------------------------------------------------- /workspace/p0506_string_view_params_stdlib/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &, char const * /*info*/, size_t /*n_of_tests*/){} 28 | void end(suite const &, char const * /*info*/){} 29 | void start(test const &){} 30 | void success(test const &,char const * /*msg*/){} 31 | void failure(test const &,test_failure const &){} 32 | void error(test const &,char const * /*what*/){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/p0506_string_view_params_stdlib/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.1" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/p0506_string_view_params_stdlib/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/p0506_string_view_params_stdlib/p0506_string_view_params_stdlib.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /workspace/p0616_perf/.gitignore: -------------------------------------------------------------------------------- 1 | /Release/ 2 | -------------------------------------------------------------------------------- /workspace/p0616_perf/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | p0616_perf 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | org.eclipse.cdt.core.cnature 23 | org.eclipse.cdt.core.ccnature 24 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 26 | 27 | 28 | -------------------------------------------------------------------------------- /workspace/p1906_examples/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | p1906_examples 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | org.eclipse.cdt.core.cnature 23 | org.eclipse.cdt.core.ccnature 24 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 26 | 27 | 28 | -------------------------------------------------------------------------------- /workspace/p1906_examples/src/cexample.c: -------------------------------------------------------------------------------- 1 | typedef struct Int { 2 | int val; 3 | } Int; 4 | 5 | struct Int foo(); 6 | 7 | void demo(){ 8 | Int i = {42}; 9 | 10 | Int j = {}; 11 | j = i; 12 | // foo() = j; 13 | } 14 | -------------------------------------------------------------------------------- /workspace/p1906_examples/src/p1906_examples.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | template 4 | struct check{ 5 | INT x{}; 6 | INT side_effect(INT &lv){ 7 | lv = INT{42}; 8 | return lv; 9 | } 10 | check& lytome(){ 11 | return *this; 12 | } 13 | void demo(){ 14 | auto &dangle = (INT{} = INT{42}); 15 | auto side = side_effect(dangle); 16 | side = side_effect(INT{} = INT{42}); 17 | check{}.lytome().x = side; 18 | } 19 | static_assert(std::is_trivially_copy_assignable_v); 20 | static_assert(std::is_trivially_move_assignable_v); 21 | static_assert(std::is_trivially_copy_constructible_v); 22 | static_assert(std::is_trivially_move_constructible_v); 23 | static_assert(std::is_trivially_destructible_v); 24 | }; 25 | 26 | struct Int { 27 | int val{}; 28 | }; 29 | 30 | struct SafeInt { 31 | int val{}; 32 | constexpr SafeInt& operator=(SafeInt const &other) & = default; 33 | constexpr SafeInt& operator=(SafeInt &&other) & = default; 34 | // need to provide copy move ctor and default ctor as well 35 | constexpr SafeInt() = default; 36 | constexpr SafeInt(SafeInt const &other) = default; 37 | constexpr SafeInt(SafeInt &&other) = default; 38 | }; 39 | 40 | int main() { 41 | check c{}; 42 | c.demo(); // compiles 43 | // check fail{}; 44 | // fail.demo(); // compile error 45 | check> cc{}; 46 | cc.demo(); // compiles 47 | // check failstoo{}; 48 | // failstoo.demo(); // compile error 49 | } 50 | -------------------------------------------------------------------------------- /workspace/p2264_test_for_assert_dotdotdot_on_my_machine/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | p2264_test_for_assert_dotdotdot_on_my_machine 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | org.eclipse.cdt.core.cnature 23 | org.eclipse.cdt.core.ccnature 24 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 26 | 27 | 28 | -------------------------------------------------------------------------------- /workspace/ratio_quotient/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ratio_quotient 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/ratio_quotient/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/ratio_quotient/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | 38 | #if __cplusplus >= 201402L 39 | #define USE_STD14 40 | #endif 41 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 42 | -------------------------------------------------------------------------------- /workspace/ratio_quotient/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &, char const * /*info*/, size_t /*n_of_tests*/){} 28 | void end(suite const &, char const * /*info*/){} 29 | void start(test const &){} 30 | void success(test const &,char const * /*msg*/){} 31 | void failure(test const &,test_failure const &){} 32 | void error(test const &,char const * /*what*/){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/ratio_quotient/cute/cute_suite.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_SUITE_H_ 21 | #define CUTE_SUITE_H_ 22 | #include "cute_test.h" 23 | #include 24 | namespace cute { 25 | typedef std::vector suite; 26 | // convenience operator for appending to suites, might not be right 27 | // deprecated, not supported by plug-in, not needed with Eclipse plug-in 28 | inline 29 | suite &operator+=(suite &left, suite const &right){ 30 | left.insert(left.end(),right.begin(),right.end()); 31 | return left; 32 | } 33 | inline 34 | suite &operator+=(suite &left, test const &right){ 35 | left.push_back(right); 36 | return left; 37 | } 38 | } 39 | #endif /*CUTE_SUITE_H_*/ 40 | -------------------------------------------------------------------------------- /workspace/ratio_quotient/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.1" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/ratio_quotient/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/ratio_quotient/ratio_quotient.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /workspace/reverseAdapter/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | reverseAdapter 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/reverseAdapter/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * Copyright (c) 2008-2018 Peter Sommerlad, Emanuel Graf, IFS 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | * 24 | *********************************************************************************/ 25 | 26 | #ifndef CUTE_VERSION_H_ 27 | #define CUTE_VERSION_H_ 28 | 29 | #define CUTE_LIB_VERSION "2.2.1" 30 | 31 | #endif /*CUTE_VERSION_H_*/ 32 | -------------------------------------------------------------------------------- /workspace/reverseAdapter/reverseAdapter.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /workspace/reverseAdapter/src/reverse.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_REVERSE_H_ 2 | #define SRC_REVERSE_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | template 8 | struct reversed{ 9 | constexpr reversed(Cont &&c,std::enable_if_t>* = nullptr):container{std::move(c)}{} 10 | constexpr reversed(Cont c,std::enable_if_t>* = nullptr):container{c}{} 11 | Cont container; 12 | constexpr auto begin() { return std::rbegin(container);} 13 | constexpr auto begin() const { return std::rbegin(container);} 14 | constexpr auto end() { return std::rend(container);} 15 | constexpr auto end() const { return std::rend(container);} 16 | }; 17 | template 18 | reversed(Cont &) -> reversed; 19 | template 20 | reversed(Cont &&) -> reversed; 21 | template 22 | reversed(std::initializer_list)-> reversedconst&>; 23 | 24 | 25 | #endif /* SRC_REVERSE_H_ */ 26 | -------------------------------------------------------------------------------- /workspace/size_type_signed/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | size_type_signed 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | org.eclipse.cdt.core.cnature 23 | org.eclipse.cdt.core.ccnature 24 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 26 | 27 | 28 | -------------------------------------------------------------------------------- /workspace/size_type_signed/src/size_type_signed.cpp: -------------------------------------------------------------------------------- 1 | //============================================================================ 2 | // Name : size_type_signed.cpp 3 | // Author : 4 | // Version : 5 | // Copyright : Your copyright notice 6 | // Description : Hello World in C++, Ansi-style 7 | //============================================================================ 8 | #include 9 | #include 10 | #include 11 | 12 | using meg=std::array; 13 | using big=std::vector; 14 | using namespace std; 15 | 16 | #include 17 | #include 18 | 19 | struct A 20 | { 21 | std::int32_t si; 22 | std::uint32_t ui; 23 | std::int32_t sib : 2; 24 | std::uint32_t uib : 2; 25 | std::uint32_t uib31 : 31; 26 | }; 27 | 28 | int main() 29 | { 30 | A a = {}; 31 | 32 | a.si = std::numeric_limits::max(); 33 | std::cout << "a.si = "<< a.si< 2 | 3 | test_for_indexer_crash_wiht_gcc701_header 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/test_for_indexer_crash_wiht_gcc701_header/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/test_for_indexer_crash_wiht_gcc701_header/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | 38 | #if __cplusplus >= 201402L 39 | #define USE_STD14 40 | #endif 41 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 42 | -------------------------------------------------------------------------------- /workspace/test_for_indexer_crash_wiht_gcc701_header/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &, char const * /*info*/, size_t /*n_of_tests*/){} 28 | void end(suite const &, char const * /*info*/){} 29 | void start(test const &){} 30 | void success(test const &,char const * /*msg*/){} 31 | void failure(test const &,test_failure const &){} 32 | void error(test const &,char const * /*what*/){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/test_for_indexer_crash_wiht_gcc701_header/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.1" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/test_for_indexer_crash_wiht_gcc701_header/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/test_moveability/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | test_moveability 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/test_moveability/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/test_moveability/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | 38 | #if __cplusplus >= 201402L 39 | #define USE_STD14 40 | #endif 41 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 42 | -------------------------------------------------------------------------------- /workspace/test_moveability/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &, char const * /*info*/, size_t /*n_of_tests*/){} 28 | void end(suite const &, char const * /*info*/){} 29 | void start(test const &){} 30 | void success(test const &,char const * /*msg*/){} 31 | void failure(test const &,test_failure const &){} 32 | void error(test const &,char const * /*what*/){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/test_moveability/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.1" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/test_moveability/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/test_moveability/src/Test.cpp: -------------------------------------------------------------------------------- 1 | #include "cute.h" 2 | #include "ide_listener.h" 3 | #include "xml_listener.h" 4 | #include "cute_runner.h" 5 | 6 | struct TForwardMove{ 7 | int i; 8 | int &ri; 9 | TForwardMove(int j, int &rj):i{j},ri{rj}{} 10 | TForwardMove(TForwardMove&&rhs) 11 | :i{std::move(rhs.i)}, 12 | //ri{std::move(rhs.ri)}{} // does not compile 13 | ri{std::forward(rhs.ri)}{} 14 | }; 15 | 16 | 17 | void InsaneBool() { 18 | int i{42}; 19 | TForwardMove x{i,i}; 20 | TForwardMove y{std::move(x)}; 21 | ASSERT_EQUAL(i,y.ri); 22 | ASSERT_EQUAL(&i,&y.ri); 23 | } 24 | 25 | bool runAllTests(int argc, char const *argv[]) { 26 | cute::suite s { }; 27 | //TODO add your test here 28 | s.push_back(CUTE(InsaneBool)); 29 | cute::xml_file_opener xmlfile(argc, argv); 30 | cute::xml_listener> lis(xmlfile.out); 31 | auto runner = cute::makeRunner(lis, argc, argv); 32 | bool success = runner(s, "AllTests"); 33 | return success; 34 | } 35 | 36 | int main(int argc, char const *argv[]) { 37 | return runAllTests(argc, argv) ? EXIT_SUCCESS : EXIT_FAILURE; 38 | } 39 | -------------------------------------------------------------------------------- /workspace/test_moveability/src/fobar.cpp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | void foobar() {throw 42;} 6 | -------------------------------------------------------------------------------- /workspace/test_moveability/test_moveability.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /workspace/testfornpe/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | testfornpe 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/testfornpe/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/testfornpe/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | 38 | #if __cplusplus >= 201402L 39 | #define USE_STD14 40 | #endif 41 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 42 | -------------------------------------------------------------------------------- /workspace/testfornpe/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &, char const * /*info*/, size_t /*n_of_tests*/){} 28 | void end(suite const &, char const * /*info*/){} 29 | void start(test const &){} 30 | void success(test const &,char const * /*msg*/){} 31 | void failure(test const &,test_failure const &){} 32 | void error(test const &,char const * /*what*/){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/testfornpe/cute/cute_suite.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_SUITE_H_ 21 | #define CUTE_SUITE_H_ 22 | #include "cute_test.h" 23 | #include 24 | namespace cute { 25 | typedef std::vector suite; 26 | // convenience operator for appending to suites, might not be right 27 | // deprecated, not supported by plug-in, not needed with Eclipse plug-in 28 | inline 29 | suite &operator+=(suite &left, suite const &right){ 30 | left.insert(left.end(),right.begin(),right.end()); 31 | return left; 32 | } 33 | inline 34 | suite &operator+=(suite &left, test const &right){ 35 | left.push_back(right); 36 | return left; 37 | } 38 | } 39 | #endif /*CUTE_SUITE_H_*/ 40 | -------------------------------------------------------------------------------- /workspace/testfornpe/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.1" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/testfornpe/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/testfornpe/src/Test.cpp: -------------------------------------------------------------------------------- 1 | #include "cute.h" 2 | #include "ide_listener.h" 3 | #include "xml_listener.h" 4 | #include "cute_runner.h" 5 | 6 | void InsaneBool() { 7 | ASSERTM("start writing tests", false); 8 | } 9 | void newTestFunction(){ 10 | ASSERTM("start writing tests", false); 11 | } 12 | 13 | 14 | bool runAllTests(int argc, char const *argv[]) { 15 | cute::suite s { }; 16 | //TODO add your test here 17 | s.push_back(CUTE(InsaneBool)); 18 | s.push_back(CUTE(newTestFunction)); 19 | cute::xml_file_opener xmlfile(argc, argv); 20 | cute::xml_listener> lis(xmlfile.out); 21 | auto runner = cute::makeRunner(lis, argc, argv); 22 | const bool success = runner(s, "AllTests"); 23 | return success; 24 | } 25 | 26 | int main(int argc, char const *argv[]) { 27 | return runAllTests(argc, argv) ? EXIT_SUCCESS : EXIT_FAILURE; 28 | } 29 | -------------------------------------------------------------------------------- /workspace/teststruct_class_forward/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | teststruct_class_forward 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/teststruct_class_forward/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * Copyright (c) 2008-2017 Peter Sommerlad, Emanuel Graf, IFS 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | * 24 | *********************************************************************************/ 25 | 26 | #ifndef CUTE_VERSION_H_ 27 | #define CUTE_VERSION_H_ 28 | 29 | #define CUTE_LIB_VERSION "2.2.1" 30 | 31 | #endif /*CUTE_VERSION_H_*/ 32 | -------------------------------------------------------------------------------- /workspace/teststruct_class_forward/src/Test.cpp: -------------------------------------------------------------------------------- 1 | #include "cute.h" 2 | #include "ide_listener.h" 3 | #include "xml_listener.h" 4 | #include "cute_runner.h" 5 | 6 | class X; 7 | 8 | X const *x=nullptr; 9 | 10 | struct X{ 11 | public: 12 | X()=default; 13 | void touch(){} 14 | }; 15 | 16 | void InsaneBool() { 17 | X x { }; 18 | ::x = &x; 19 | x.touch(); 20 | ASSERTM("start writing tests", false); 21 | } 22 | 23 | bool runAllTests(int argc, char const *argv[]) { 24 | cute::suite s { }; 25 | //TODO add your test here 26 | s.push_back(CUTE(InsaneBool)); 27 | cute::xml_file_opener xmlfile(argc, argv); 28 | cute::xml_listener> lis(xmlfile.out); 29 | auto runner = cute::makeRunner(lis, argc, argv); 30 | bool success = runner(s, "AllTests"); 31 | return success; 32 | } 33 | 34 | int main(int argc, char const *argv[]) { 35 | return runAllTests(argc, argv) ? EXIT_SUCCESS : EXIT_FAILURE; 36 | } 37 | -------------------------------------------------------------------------------- /workspace/testunits_for_indexer_check/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | testunits_for_indexer_check 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/testunits_for_indexer_check/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/testunits_for_indexer_check/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | 38 | #if __cplusplus >= 201402L 39 | #define USE_STD14 40 | #endif 41 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 42 | -------------------------------------------------------------------------------- /workspace/testunits_for_indexer_check/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &, char const * /*info*/, size_t /*n_of_tests*/){} 28 | void end(suite const &, char const * /*info*/){} 29 | void start(test const &){} 30 | void success(test const &,char const * /*msg*/){} 31 | void failure(test const &,test_failure const &){} 32 | void error(test const &,char const * /*what*/){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/testunits_for_indexer_check/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.1" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/testunits_for_indexer_check/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | -------------------------------------------------------------------------------- /workspace/testunits_for_indexer_check/src/Test.cpp: -------------------------------------------------------------------------------- 1 | #include "units.h" 2 | #include "cute.h" 3 | #include "ide_listener.h" 4 | #include "xml_listener.h" 5 | #include "cute_runner.h" 6 | 7 | void thisIsATest() { 8 | ASSERTM("start writing tests", false); 9 | } 10 | 11 | bool runAllTests(int argc, char const *argv[]) { 12 | cute::suite s { }; 13 | //TODO add your test here 14 | s.push_back(CUTE(thisIsATest)); 15 | cute::xml_file_opener xmlfile(argc, argv); 16 | cute::xml_listener> lis(xmlfile.out); 17 | auto runner = cute::makeRunner(lis, argc, argv); 18 | bool success = runner(s, "AllTests"); 19 | return success; 20 | } 21 | 22 | int main(int argc, char const *argv[]) { 23 | return runAllTests(argc, argv) ? EXIT_SUCCESS : EXIT_FAILURE; 24 | } 25 | -------------------------------------------------------------------------------- /workspace/ttttttttt/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ttttttttt 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | ch.hsr.ifs.cute.ui.cutenature 23 | org.eclipse.cdt.core.cnature 24 | org.eclipse.cdt.core.ccnature 25 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 26 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /workspace/ttttttttt/cute/cute.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006-2009 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_H_ 22 | #define CUTE_H_ 23 | // all CUTE includes for writing tests and suites 24 | #include "cute_base.h" 25 | #include "cute_equals.h" 26 | #include "cute_relops.h" 27 | #include "cute_data_driven.h" 28 | #include "cute_throws.h" 29 | #include "cute_suite.h" 30 | #include "cute_repeated_test.h" 31 | #include "cute_suite_test.h" 32 | #include "cute_test_incarnate.h" 33 | #include "cute_test.h" 34 | #include "cute_testmember.h" 35 | #include "cute_version.h" 36 | #endif /*CUTE_H_*/ 37 | -------------------------------------------------------------------------------- /workspace/ttttttttt/cute/cute_determine_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007-2013 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_DETERMINE_VERSION_H_ 22 | #define CUTE_DETERMINE_VERSION_H_ 23 | 24 | #if __cplusplus >= 201103L && ! defined (USE_STD11) 25 | #define USE_STD11 1 26 | #endif 27 | 28 | #if defined(__GNUG__) && defined(__GXX_EXPERIMENTAL_CXX0X__) && ! defined(USE_TR1) && ! defined(USE_STD11) 29 | #define USE_STD11 1 30 | #endif 31 | 32 | #ifdef _MSC_VER 33 | #if (_MSC_VER >= 1400) 34 | #define USE_STD11 1 35 | #endif 36 | #endif 37 | 38 | #if __cplusplus >= 201402L 39 | #define USE_STD14 40 | #endif 41 | #endif /*CUTE_DETERMINE_VERSION_H_*/ 42 | -------------------------------------------------------------------------------- /workspace/ttttttttt/cute/cute_listener.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2007 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | 21 | #ifndef CUTE_LISTENER_H_ 22 | #define CUTE_LISTENER_H_ 23 | #include "cute_base.h" 24 | #include "cute_suite.h" 25 | namespace cute { 26 | struct null_listener{ // defines Contract of runner parameter 27 | void begin(suite const &, char const * /*info*/, size_t /*n_of_tests*/){} 28 | void end(suite const &, char const * /*info*/){} 29 | void start(test const &){} 30 | void success(test const &,char const * /*msg*/){} 31 | void failure(test const &,test_failure const &){} 32 | void error(test const &,char const * /*what*/){} 33 | }; 34 | } 35 | #endif /* CUTE_LISTENER_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /workspace/ttttttttt/cute/cute_suite.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2006 Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_SUITE_H_ 21 | #define CUTE_SUITE_H_ 22 | #include "cute_test.h" 23 | #include 24 | namespace cute { 25 | typedef std::vector suite; 26 | // convenience operator for appending to suites, might not be right 27 | // deprecated, not supported by plug-in, not needed with Eclipse plug-in 28 | inline 29 | suite &operator+=(suite &left, suite const &right){ 30 | left.insert(left.end(),right.begin(),right.end()); 31 | return left; 32 | } 33 | inline 34 | suite &operator+=(suite &left, test const &right){ 35 | left.push_back(right); 36 | return left; 37 | } 38 | } 39 | #endif /*CUTE_SUITE_H_*/ 40 | -------------------------------------------------------------------------------- /workspace/ttttttttt/cute/cute_version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************* 2 | * This file is part of CUTE. 3 | * 4 | * CUTE is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * CUTE is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with CUTE. If not, see . 16 | * 17 | * Copyright 2008-2013 Emanuel Graf, Peter Sommerlad 18 | * 19 | *********************************************************************************/ 20 | #ifndef CUTE_VERSION_H_ 21 | #define CUTE_VERSION_H_ 22 | 23 | #define CUTE_LIB_VERSION "2.0.1" 24 | 25 | #endif /*CUTE_VERSION_H_*/ 26 | -------------------------------------------------------------------------------- /workspace/ttttttttt/cute/cute_xml_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cute_xml_file.h 3 | * 4 | * Created on: 07.06.2013 5 | * Author: sop 6 | */ 7 | 8 | #ifndef CUTE_XML_FILE_H_ 9 | #define CUTE_XML_FILE_H_ 10 | 11 | #include 12 | #include 13 | namespace cute { 14 | struct xml_file_opener { 15 | std::string filename; 16 | std::ofstream out; 17 | xml_file_opener(int argc, char const *const* argv) 18 | :filename(argc>0&&argv[0]?basename(argv[0]):"testresult.xml") 19 | ,out(filename.c_str()){} 20 | std::string basename(std::string path){ 21 | #if defined( _MSC_VER ) || defined(__MINGW32__) 22 | char const sep='\\'; 23 | #else 24 | char const sep='/'; 25 | #endif 26 | std::string::size_type pos=path.find_last_of(sep,path.size()-1); 27 | if (pos != std::string::npos) path.erase(0,pos+1); 28 | path+=".xml"; 29 | return path; 30 | } 31 | }; 32 | } 33 | 34 | #endif /* CUTE_XML_FILE_H_ */ 35 | --------------------------------------------------------------------------------