Originally identified by Coverity Scan. Zero length periods like
[3, 3) cannot intersect with anything. Invalid periods like
[5, 4) also cannot intersect with anything. In both cases the
unit tests are wrong, and fixing them reveals the implementation
is not canonical for half-open sane intervals.
* Make the library modular usable.
* Switch to library requirements instead of source. As source puts extra source in install targets.
* Add missing NO_LIB usage requirements.
* 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.
* Adjust doc build to avoid boost-root references.
* Update build deps.
* Rework GHA to use containers for the ubuntu that are god or going away.
* Remove obsolete package installs.
* Need another package?
* Some deepndencies are now C++11 only. Hence date_time is now also C++11 only.
* Switch macOS test to use the latest version.
* Remove not-needed software-properties-common package.
* Remove setup gcc toolchain step.
* Install some missing compilers.
* Maybe the gcc builds for the specific ubuntu versions rea broken. Switch to something newer.
* to_iso_*string() use "." as fractional separator
The fractional separator for the various to_iso_* methods
is "." not "," (per to_iso_string_type() implementation).
Fix the documentation to match the implementation.
* use "ISO 8601" not "iso" in documentation
The standard is "ISO 8601", so use that instead
of just "iso" or "ISO" in comments and documentation.
* fractional seconds only included if non-zero (#110)
Consistently document that the fractional seconds
are only included if non-zero.
Use "where fffffffff" not "were fff".
GCC up to at least 10.2 fail to resolve
gregorian::date::date(special_values) as constexpr function due to
assignment to *this within the constructor. Refactoring constructor to
initialize the instance once leads to large performance improvement.
MSVC 19.28.29336.0 throws the following warning when
boost::date_time::gregorian_date is called.
warning C4365: 'initializing': conversion from 'int' to 'unsigned long', signed/unsigned mismatch
warning C4365: const boost::posix_time::ptime Since1970(boost::gregorian::date(1970U, 1U, 1U));
warning C4365: ^
<path>\include\boost\date_time\date.hpp(72,35): message : while evaluating constexpr function 'boost::date_time::gregorian_calendar_base<boost::gregorian::greg_year_month_day,unsigned int>::day_number'
<path>\include\boost\date_time\date.hpp(72,35): message : : days_(calendar::day_number(ymd_type(y, m, d)))
Co-authored-by: timmaraju <keerthi.timmaraju@teamviewer.com>
- align to current boost-ci practice
- deal with VERY slow test runner in microsec_time_clock test
- disable sanitize tests - too many issues in boost serialization right now
- omit unit tests from coverage
* Change greg_month and greg_weekday to be not marked as exported/imported (#146)
* Changed greg_month and greg_weekday to be not marked as exported/imported.
Both greg_month and greg_weekday classes are implemented completely in headers,
so they need not be marked with BOOST_DATE_TIME_DECL. For consistency with other
similar classes, they are now marked with BOOST_SYMBOL_VISIBLE.
This should fix linking errors on Windows/MSVC, where all members of greg_month
and greg_weekday classes remain unresolved as they are expected to be
implemented in a shared library.
* Enabled shared and static linking in AppVeyor CI.
* fix new msvc warning in date_parsing with Warn4 - issue #148
* Cast month numbers to the correct type in map init (#152)
Since the map contains unsigned short for month numbers, it is more correct to explicitly cast constants to that type rather than short.
* Changes for Embarcadero C++ clang-based compilers, targeting Boost 1.74 (#150)
* Change __BORLANDC__ to BOOST_BORLANDC, which is defined in Boost config for the Embarcadero non-clang-based compilers.
* Change BOOST_BORLANDC back to __BORLANDC__ for non-posix functionality.
* Include the header file.
* Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero.
* Revert "Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero."
This reverts commit 88e45e951b.
* Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero.
* Remove separate outside of template class friend functions.
* Define all the friend functions outside the class to conform with the necessity of Embarcadero C++ clang-based compilers that need the friend functions in exported/imported classes to be defined outside the class. This is an Embarcadero C++ clang-based compiler bug which i reported to Embarcadero.
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* tune: add initial cmake configuration (#151)
* tune: add initial cmake configuration
* bugfix: Incorrect library alias
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Use BOOST_OVERRIDE to fix GCC -Wsuggest-override and Clang-tidy modernize-use-override warnings. (#155)
Also fix Clang -Wextra-semi-stmt and Clang-tidy readability-container-size-empty warnings.
Alphabetical order of STL headers.
Fix some misspellings.
Co-authored-by: Eugene Zelenko <eugene@diakopto.com>
* Break DateTime <-> Serialization circular dependency (#154)
Breaks DateTime -> Serialization -> Spirit -> Thread -> DateTime chain.
The Serialization documentation seems to be explicitly allow this:
https://www.boost.org/doc/libs/1_73_0/libs/serialization/doc/traits.html#versionhttps://www.boost.org/doc/libs/1_73_0/libs/serialization/doc/serialization.html#splitting
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Fix clang 10 C++17 warnings about deprecated implicit assignment operators. (#158)
C++17 deprecates implicit generation of assignment operator in presence of
explicitly declared copy constructor. In future standards this behavior may
be removed.
In the affected Boost.DateTime classes, the explicitly defined copy
constructors are functionally equivalent to those would be generated
implicitly, so we can just remove them. The additional benefit is that the
implicitly generated ones will have constexpr and noexcept specifications,
and will also allow implicit move constructors and assignment operators.
* Suppress MSVC CRT deprecations on Clang (#160)
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Add BOOST_CXX14_CONSTEXPR to CV assign() (#161)
Without this change the BOOST_CXX14_CONSTEXPR on the constructors has no
effect, as they invoke assign()
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* add constexpr tests to date, ptime, constrained_value (#162)
* merge some doc changes for constexpr fix (#163)
* add constexpr tests to date, ptime, constrained_value
* add some docs for 1.74 release
* const-qualify retrieval and comparison methods of time_itr and date_itr_base (#170)
* [skip ci] Add "cxxstd" json field. The "cxxstd" json field is being added to each Boost library's meta json information for libraries in order to specify the minumum C++ standard compilation level. The value of this field matches one of the values for 'cxxstd' in Boost.Build. The purpose of doing this is to provide information for the Boost website documentation for each library which will specify the minimum C++ standard compilation that an end-user must employ in order to use the particular library. This will aid end-users who want to know if they can successfully use a Boost library based on their C++ compiler's compilation level, without having to search the library's documentation to find this out. (#178)
* add drone config [ci skip] (#180)
* Add GitHub Actions config [ci skip] (#182)
* Update README.md
* Update README.md
* Update README.md
fixup comments on readme to match header_only status
* fix#189 for autolink -- driveby change to remove gcc2.95 support (#191)
* ptime from iso error string error with date only (#192)
* fix#189 for autolink -- driveby change to remove gcc2.95 support
* fix#187 date-only case to avoid string exception, beef up error case test
* ci updates (#194)
* fix#189 for autolink -- driveby change to remove gcc2.95 support
* fix#187 date-only case to avoid string exception, beef up error case test
* attempted fix for #193 - ci issues
* attempted fix for #193 - ci issues try 2
* attempted fix for #193 - ci issues try 3
* attempted fix for #193 - ci issues try 4
* attempted fix for #193 - ci issues try 4a
* attempted fix for #193 - ci issues try 5
* attempted fix for #193 - ci issues try 6
* attempted fix for #193 - ci issues try 7 - rm clang 3.8
* Regenerate CMakeLists.txt
* Add stub source file
Co-authored-by: Andrey Semashev <Lastique@users.noreply.github.com>
Co-authored-by: Edward Diener <eldlistmailingz@tropicsoft.com>
Co-authored-by: tapika <tapika@yahoo.com>
Co-authored-by: EugeneZelenko <eugene.zelenko@gmail.com>
Co-authored-by: Eugene Zelenko <eugene@diakopto.com>
Co-authored-by: Nikita Kniazev <nok.raven@gmail.com>
Co-authored-by: Roger Orr <rogero@howzatt.co.uk>
Co-authored-by: klaus triendl <klaus@triendl.eu>
Co-authored-by: Sam Darwin <samuel.d.darwin@gmail.com>
Co-authored-by: Peter Dimov <pdimov@gmail.com>
* fix#189 for autolink -- driveby change to remove gcc2.95 support
* fix#187 date-only case to avoid string exception, beef up error case test
* attempted fix for #193 - ci issues
* attempted fix for #193 - ci issues try 2
* attempted fix for #193 - ci issues try 3
* attempted fix for #193 - ci issues try 4
* attempted fix for #193 - ci issues try 4a
* attempted fix for #193 - ci issues try 5
* attempted fix for #193 - ci issues try 6
* attempted fix for #193 - ci issues try 7 - rm clang 3.8
* Change greg_month and greg_weekday to be not marked as exported/imported (#146)
* Changed greg_month and greg_weekday to be not marked as exported/imported.
Both greg_month and greg_weekday classes are implemented completely in headers,
so they need not be marked with BOOST_DATE_TIME_DECL. For consistency with other
similar classes, they are now marked with BOOST_SYMBOL_VISIBLE.
This should fix linking errors on Windows/MSVC, where all members of greg_month
and greg_weekday classes remain unresolved as they are expected to be
implemented in a shared library.
* Enabled shared and static linking in AppVeyor CI.
* fix new msvc warning in date_parsing with Warn4 - issue #148
* Cast month numbers to the correct type in map init (#152)
Since the map contains unsigned short for month numbers, it is more correct to explicitly cast constants to that type rather than short.
* Changes for Embarcadero C++ clang-based compilers, targeting Boost 1.74 (#150)
* Change __BORLANDC__ to BOOST_BORLANDC, which is defined in Boost config for the Embarcadero non-clang-based compilers.
* Change BOOST_BORLANDC back to __BORLANDC__ for non-posix functionality.
* Include the header file.
* Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero.
* Revert "Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero."
This reverts commit 88e45e951b.
* Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero.
* Remove separate outside of template class friend functions.
* Define all the friend functions outside the class to conform with the necessity of Embarcadero C++ clang-based compilers that need the friend functions in exported/imported classes to be defined outside the class. This is an Embarcadero C++ clang-based compiler bug which i reported to Embarcadero.
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* tune: add initial cmake configuration (#151)
* tune: add initial cmake configuration
* bugfix: Incorrect library alias
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Use BOOST_OVERRIDE to fix GCC -Wsuggest-override and Clang-tidy modernize-use-override warnings. (#155)
Also fix Clang -Wextra-semi-stmt and Clang-tidy readability-container-size-empty warnings.
Alphabetical order of STL headers.
Fix some misspellings.
Co-authored-by: Eugene Zelenko <eugene@diakopto.com>
* Break DateTime <-> Serialization circular dependency (#154)
Breaks DateTime -> Serialization -> Spirit -> Thread -> DateTime chain.
The Serialization documentation seems to be explicitly allow this:
https://www.boost.org/doc/libs/1_73_0/libs/serialization/doc/traits.html#versionhttps://www.boost.org/doc/libs/1_73_0/libs/serialization/doc/serialization.html#splitting
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Fix clang 10 C++17 warnings about deprecated implicit assignment operators. (#158)
C++17 deprecates implicit generation of assignment operator in presence of
explicitly declared copy constructor. In future standards this behavior may
be removed.
In the affected Boost.DateTime classes, the explicitly defined copy
constructors are functionally equivalent to those would be generated
implicitly, so we can just remove them. The additional benefit is that the
implicitly generated ones will have constexpr and noexcept specifications,
and will also allow implicit move constructors and assignment operators.
* Suppress MSVC CRT deprecations on Clang (#160)
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Add BOOST_CXX14_CONSTEXPR to CV assign() (#161)
Without this change the BOOST_CXX14_CONSTEXPR on the constructors has no
effect, as they invoke assign()
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* add constexpr tests to date, ptime, constrained_value (#162)
* merge some doc changes for constexpr fix (#163)
* add constexpr tests to date, ptime, constrained_value
* add some docs for 1.74 release
* const-qualify retrieval and comparison methods of time_itr and date_itr_base (#170)
* [skip ci] Add "cxxstd" json field. The "cxxstd" json field is being added to each Boost library's meta json information for libraries in order to specify the minumum C++ standard compilation level. The value of this field matches one of the values for 'cxxstd' in Boost.Build. The purpose of doing this is to provide information for the Boost website documentation for each library which will specify the minimum C++ standard compilation that an end-user must employ in order to use the particular library. This will aid end-users who want to know if they can successfully use a Boost library based on their C++ compiler's compilation level, without having to search the library's documentation to find this out. (#178)
* add drone config [ci skip] (#180)
* Add GitHub Actions config [ci skip] (#182)
Co-authored-by: Andrey Semashev <Lastique@users.noreply.github.com>
Co-authored-by: Edward Diener <eldlistmailingz@tropicsoft.com>
Co-authored-by: tapika <tapika@yahoo.com>
Co-authored-by: EugeneZelenko <eugene.zelenko@gmail.com>
Co-authored-by: Eugene Zelenko <eugene@diakopto.com>
Co-authored-by: Nikita Kniazev <nok.raven@gmail.com>
Co-authored-by: Roger Orr <rogero@howzatt.co.uk>
Co-authored-by: klaus triendl <klaus@triendl.eu>
Co-authored-by: Sam Darwin <samuel.d.darwin@gmail.com>
* Change greg_month and greg_weekday to be not marked as exported/imported (#146)
* Changed greg_month and greg_weekday to be not marked as exported/imported.
Both greg_month and greg_weekday classes are implemented completely in headers,
so they need not be marked with BOOST_DATE_TIME_DECL. For consistency with other
similar classes, they are now marked with BOOST_SYMBOL_VISIBLE.
This should fix linking errors on Windows/MSVC, where all members of greg_month
and greg_weekday classes remain unresolved as they are expected to be
implemented in a shared library.
* Enabled shared and static linking in AppVeyor CI.
* fix new msvc warning in date_parsing with Warn4 - issue #148
* Cast month numbers to the correct type in map init (#152)
Since the map contains unsigned short for month numbers, it is more correct to explicitly cast constants to that type rather than short.
* Changes for Embarcadero C++ clang-based compilers, targeting Boost 1.74 (#150)
* Change __BORLANDC__ to BOOST_BORLANDC, which is defined in Boost config for the Embarcadero non-clang-based compilers.
* Change BOOST_BORLANDC back to __BORLANDC__ for non-posix functionality.
* Include the header file.
* Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero.
* Revert "Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero."
This reverts commit 88e45e951b.
* Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero.
* Remove separate outside of template class friend functions.
* Define all the friend functions outside the class to conform with the necessity of Embarcadero C++ clang-based compilers that need the friend functions in exported/imported classes to be defined outside the class. This is an Embarcadero C++ clang-based compiler bug which i reported to Embarcadero.
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* tune: add initial cmake configuration (#151)
* tune: add initial cmake configuration
* bugfix: Incorrect library alias
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Use BOOST_OVERRIDE to fix GCC -Wsuggest-override and Clang-tidy modernize-use-override warnings. (#155)
Also fix Clang -Wextra-semi-stmt and Clang-tidy readability-container-size-empty warnings.
Alphabetical order of STL headers.
Fix some misspellings.
Co-authored-by: Eugene Zelenko <eugene@diakopto.com>
* Break DateTime <-> Serialization circular dependency (#154)
Breaks DateTime -> Serialization -> Spirit -> Thread -> DateTime chain.
The Serialization documentation seems to be explicitly allow this:
https://www.boost.org/doc/libs/1_73_0/libs/serialization/doc/traits.html#versionhttps://www.boost.org/doc/libs/1_73_0/libs/serialization/doc/serialization.html#splitting
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Fix clang 10 C++17 warnings about deprecated implicit assignment operators. (#158)
C++17 deprecates implicit generation of assignment operator in presence of
explicitly declared copy constructor. In future standards this behavior may
be removed.
In the affected Boost.DateTime classes, the explicitly defined copy
constructors are functionally equivalent to those would be generated
implicitly, so we can just remove them. The additional benefit is that the
implicitly generated ones will have constexpr and noexcept specifications,
and will also allow implicit move constructors and assignment operators.
* Suppress MSVC CRT deprecations on Clang (#160)
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Add BOOST_CXX14_CONSTEXPR to CV assign() (#161)
Without this change the BOOST_CXX14_CONSTEXPR on the constructors has no
effect, as they invoke assign()
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* add constexpr tests to date, ptime, constrained_value (#162)
* merge some doc changes for constexpr fix (#163)
* add constexpr tests to date, ptime, constrained_value
* add some docs for 1.74 release
Co-authored-by: Andrey Semashev <Lastique@users.noreply.github.com>
Co-authored-by: Edward Diener <eldlistmailingz@tropicsoft.com>
Co-authored-by: tapika <tapika@yahoo.com>
Co-authored-by: EugeneZelenko <eugene.zelenko@gmail.com>
Co-authored-by: Eugene Zelenko <eugene@diakopto.com>
Co-authored-by: Nikita Kniazev <nok.raven@gmail.com>
Co-authored-by: Roger Orr <rogero@howzatt.co.uk>
Without this change the BOOST_CXX14_CONSTEXPR on the constructors has no
effect, as they invoke assign()
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Change greg_month and greg_weekday to be not marked as exported/imported (#146)
* Changed greg_month and greg_weekday to be not marked as exported/imported.
Both greg_month and greg_weekday classes are implemented completely in headers,
so they need not be marked with BOOST_DATE_TIME_DECL. For consistency with other
similar classes, they are now marked with BOOST_SYMBOL_VISIBLE.
This should fix linking errors on Windows/MSVC, where all members of greg_month
and greg_weekday classes remain unresolved as they are expected to be
implemented in a shared library.
* Enabled shared and static linking in AppVeyor CI.
* fix new msvc warning in date_parsing with Warn4 - issue #148
* Cast month numbers to the correct type in map init (#152)
Since the map contains unsigned short for month numbers, it is more correct to explicitly cast constants to that type rather than short.
* Changes for Embarcadero C++ clang-based compilers, targeting Boost 1.74 (#150)
* Change __BORLANDC__ to BOOST_BORLANDC, which is defined in Boost config for the Embarcadero non-clang-based compilers.
* Change BOOST_BORLANDC back to __BORLANDC__ for non-posix functionality.
* Include the header file.
* Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero.
* Revert "Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero."
This reverts commit 88e45e951b.
* Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero.
* Remove separate outside of template class friend functions.
* Define all the friend functions outside the class to conform with the necessity of Embarcadero C++ clang-based compilers that need the friend functions in exported/imported classes to be defined outside the class. This is an Embarcadero C++ clang-based compiler bug which i reported to Embarcadero.
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* tune: add initial cmake configuration (#151)
* tune: add initial cmake configuration
* bugfix: Incorrect library alias
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Use BOOST_OVERRIDE to fix GCC -Wsuggest-override and Clang-tidy modernize-use-override warnings. (#155)
Also fix Clang -Wextra-semi-stmt and Clang-tidy readability-container-size-empty warnings.
Alphabetical order of STL headers.
Fix some misspellings.
Co-authored-by: Eugene Zelenko <eugene@diakopto.com>
* Break DateTime <-> Serialization circular dependency (#154)
Breaks DateTime -> Serialization -> Spirit -> Thread -> DateTime chain.
The Serialization documentation seems to be explicitly allow this:
https://www.boost.org/doc/libs/1_73_0/libs/serialization/doc/traits.html#versionhttps://www.boost.org/doc/libs/1_73_0/libs/serialization/doc/serialization.html#splitting
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Fix clang 10 C++17 warnings about deprecated implicit assignment operators. (#158)
C++17 deprecates implicit generation of assignment operator in presence of
explicitly declared copy constructor. In future standards this behavior may
be removed.
In the affected Boost.DateTime classes, the explicitly defined copy
constructors are functionally equivalent to those would be generated
implicitly, so we can just remove them. The additional benefit is that the
implicitly generated ones will have constexpr and noexcept specifications,
and will also allow implicit move constructors and assignment operators.
Co-authored-by: Andrey Semashev <Lastique@users.noreply.github.com>
Co-authored-by: Edward Diener <eldlistmailingz@tropicsoft.com>
Co-authored-by: tapika <tapika@yahoo.com>
Co-authored-by: EugeneZelenko <eugene.zelenko@gmail.com>
Co-authored-by: Eugene Zelenko <eugene@diakopto.com>
Co-authored-by: Nikita Kniazev <nok.raven@gmail.com>
C++17 deprecates implicit generation of assignment operator in presence of
explicitly declared copy constructor. In future standards this behavior may
be removed.
In the affected Boost.DateTime classes, the explicitly defined copy
constructors are functionally equivalent to those would be generated
implicitly, so we can just remove them. The additional benefit is that the
implicitly generated ones will have constexpr and noexcept specifications,
and will also allow implicit move constructors and assignment operators.
Also fix Clang -Wextra-semi-stmt and Clang-tidy readability-container-size-empty warnings.
Alphabetical order of STL headers.
Fix some misspellings.
Co-authored-by: Eugene Zelenko <eugene@diakopto.com>
* Change __BORLANDC__ to BOOST_BORLANDC, which is defined in Boost config for the Embarcadero non-clang-based compilers.
* Change BOOST_BORLANDC back to __BORLANDC__ for non-posix functionality.
* Include the header file.
* Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero.
* Revert "Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero."
This reverts commit 88e45e951b.
* Inline friend function definitions for exported/imported classes must become declarations and inline definitions outside the class for Embarcadero C++ clang-based compilers. This bug has been reported to Embarcadero.
* Remove separate outside of template class friend functions.
* Define all the friend functions outside the class to conform with the necessity of Embarcadero C++ clang-based compilers that need the friend functions in exported/imported classes to be defined outside the class. This is an Embarcadero C++ clang-based compiler bug which i reported to Embarcadero.
Co-authored-by: Jeff Garland <jeff@crystalclearsoftware.com>
* Changed greg_month and greg_weekday to be not marked as exported/imported.
Both greg_month and greg_weekday classes are implemented completely in headers,
so they need not be marked with BOOST_DATE_TIME_DECL. For consistency with other
similar classes, they are now marked with BOOST_SYMBOL_VISIBLE.
This should fix linking errors on Windows/MSVC, where all members of greg_month
and greg_weekday classes remain unresolved as they are expected to be
implemented in a shared library.
* Enabled shared and static linking in AppVeyor CI.
Co-authored-by: Andrey Semashev <Lastique@users.noreply.github.com>