* Make the library modular usable.
* Switch to library requirements instead of source. As source puts extra source in install targets.
* Add missing import-search for cconfig/predef checks.
* Add requires-b2 check to top-level build file.
* Bump B2 require to 5.2
* Update copyright dates.
* Move inter-lib dependencies to a project variable and into the build targets.
* Update build deps.
* Suppress `-Wdeprecated-copy` on Clang 13
Clang 13 now also emits `-Wdeprecated-copy` when a copy assign operator is deleted. Since we need both `actor` to be an aggregate and to disallow assignment -- the only other way is to suppress the warning.
* Fix CI: replace `os: "ubuntu-xx.04"` workers with containers
ubuntu-16.04 is already removed from GHA and ubuntu-18.04 will be soon removed too
* Fix CI: Install only necessary stuff in containers
* Run CI in any branch
* Add get_ for std::tuple support
* Account for MSVC not defining __cplusplus properly
* Fix test definition
* Skip tuple test if C++11 not available
* Make C++11 compatible
* Bump minimum standard for tuple support to C++ 14
Return type deduction is necessary because this can depend on parameters to
get.
* Remove debug type that made compile fail
* Also remove the use of that debug type
* Rename tuple.cpp to tuple_test.cpp
* Use direct initialization in tuple_test.cpp
* Bump osx_image for Travis
* Make tuple.hpp comply with standard style
In #64 when I made actor utilize Proto generated assignment operators, I missed
that Phoenix copy assignment operator was not producing a lazy expression,
instead it simply copied the state over. I do not know why that was done in the
first place, the previous behavior is not logical to me, and the current one is
more justified, however after thinking thoroughly there is not a lot of use
cases for it, the only I had come with is:
```cpp
#include <boost/phoenix.hpp>
#include <iostream>
int main()
{
using namespace boost::phoenix;
int i = 0, j = 123;
auto ri = ref(i);
(ri = ref(j))();
std::cout << "i=" << i << ", j=" << j << "\n";
}
```
Since the behavior was broken 6 releases (2.5 years) ago, what is enough time
to some one to spot the change and report a regression, but we have not received
any, and the new behavior has a little value, I think it is better to simply
remove the copy assignment operator, because it will allow us to solve naturally
the issue with the `-Wdeprecated-copy` warning (otherwise we need either to
define copy constructor and it will break code that relies on `actor` being an
aggregate, or suppress the warning what currently impossible on GCC).
The test for it is not run by the test suit, it does not compile because of
missing includes somewhere, and fixing compilation is not the end of the story.
The `visit_each` seems to be simply never worked, running the test fails with a
wrong result.
The only potential usage of `visit_each` is the Signals1/2 library, and I did
not find any bug report about that.
Was added in 74722b8e46 with a message that it
is not ready, yet the headers are included with every Phoenix usage, affecting
compilation times. It was supposed to implement backward compatibility with
Phoenix 2 result protocol, what now seems to have little to zero value, since
the break happened about ten years ago.
Deleted tests:
* `function_tests_phx2` duplicates `function_tests`
* `bind_function_object_tests_phx2` duplicates `bind_function_object_tests`
* `lambda_tests_phx2` duplicates `lambda_tests18`+`lambda_tests19`