Compare commits

..

3 Commits

Author SHA1 Message Date
René Ferdinand Rivera Morell
795773e0e0 Add support for modular build structure. (#40)
This is part of the effort to make the Boost libraries "modular" for build and consumption. See https://lists.boost.org/Archives/boost/2024/01/255704.php and https://github.com/grafikrobot/boost-b2-modular/blob/b2-modular/README.adoc for more information.

This PR depends on the following other PRs being merged to both develop and master branches of the respective repos:

- https://github.com/boostorg/boost/pull/854
2024-08-24 12:38:13 +03:00
Antony Polukhin
e37bc99e85 Modernize the alignment test 2024-01-07 14:49:28 +03:00
Antony Polukhin
43dd1e135a Update copyright years 2024-01-07 12:59:10 +03:00
36 changed files with 82 additions and 54 deletions

26
build.jam Normal file
View File

@@ -0,0 +1,26 @@
# Copyright René Ferdinand Rivera Morell 2023-2024
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
require-b2 5.2 ;
constant boost_dependencies :
/boost/config//boost_config
/boost/container_hash//boost_container_hash
/boost/core//boost_core
/boost/throw_exception//boost_throw_exception ;
project /boost/type_index
: common-requirements
<include>include
;
explicit
[ alias boost_type_index : : : : <library>$(boost_dependencies) ]
[ alias all : boost_type_index test ]
;
call-if : boost-library type_index
;

View File

@@ -1,4 +1,4 @@
# Copyright 2011-2023 Antony Polukhin.
# Copyright 2011-2024 Antony Polukhin.
# Use, modification, and distribution are
# subject to the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,9 +9,9 @@ import doxygen ;
doxygen autodoc
:
[ glob ../../../boost/type_index.hpp ]
[ glob ../../../boost/type_index/*.hpp ]
[ glob ../../../boost/type_index/runtime_cast/*.hpp ]
[ glob ../include/boost/type_index.hpp ]
[ glob ../include/boost/type_index/*.hpp ]
[ glob ../include/boost/type_index/runtime_cast/*.hpp ]
:
<doxygen:param>EXTRACT_ALL=NO
<doxygen:param>HIDE_UNDOC_MEMBERS=YES

View File

@@ -1,7 +1,7 @@
[library Boost.TypeIndex
[quickbook 1.6]
[version 4.1]
[copyright 2012-2023 Antony Polukhin]
[copyright 2012-2024 Antony Polukhin]
[category Language Features Emulation]
[license
Distributed under the Boost Software License, Version 1.0.

View File

@@ -1,4 +1,4 @@
// Copyright 2013-2023 Antony Polukhin
// Copyright 2013-2024 Antony Polukhin
// Distributed under the Boost Software License, Version 1.0.
// (See the accompanying file LICENSE_1_0.txt

View File

@@ -1,4 +1,4 @@
// Copyright 2013-2023 Antony Polukhin
// Copyright 2013-2024 Antony Polukhin
// Distributed under the Boost Software License, Version 1.0.
// (See the accompanying file LICENSE_1_0.txt

View File

@@ -1,4 +1,4 @@
// Copyright 2013-2023 Antony Polukhin
// Copyright 2013-2024 Antony Polukhin
// Distributed under the Boost Software License, Version 1.0.
// (See the accompanying file LICENSE_1_0.txt

View File

@@ -1,4 +1,4 @@
// Copyright 2013-2023 Antony Polukhin
// Copyright 2013-2024 Antony Polukhin
// Distributed under the Boost Software License, Version 1.0.
// (See the accompanying file LICENSE_1_0.txt

View File

@@ -1,4 +1,4 @@
// Copyright 2013-2023 Antony Polukhin
// Copyright 2013-2024 Antony Polukhin
// Distributed under the Boost Software License, Version 1.0.
// (See the accompanying file LICENSE_1_0.txt

View File

@@ -1,4 +1,4 @@
// Copyright 2013-2023 Antony Polukhin
// Copyright 2013-2024 Antony Polukhin
// Distributed under the Boost Software License, Version 1.0.
// (See the accompanying file LICENSE_1_0.txt

View File

@@ -1,4 +1,4 @@
// Copyright 2013-2023 Antony Polukhin
// Copyright 2013-2024 Antony Polukhin
// Distributed under the Boost Software License, Version 1.0.
// (See the accompanying file LICENSE_1_0.txt

View File

@@ -1,4 +1,4 @@
// Copyright 2013-2023 Antony Polukhin
// Copyright 2013-2024 Antony Polukhin
// Distributed under the Boost Software License, Version 1.0.
// (See the accompanying file LICENSE_1_0.txt
@@ -14,7 +14,7 @@
*/
// BOOST_TYPE_INDEX_USER_TYPEINDEX must be defined *BEFORE* first inclusion of <boost/type_index.hpp>
#define BOOST_TYPE_INDEX_USER_TYPEINDEX <boost/../libs/type_index/examples/user_defined_typeinfo.hpp>
#define BOOST_TYPE_INDEX_USER_TYPEINDEX <user_defined_typeinfo.hpp>
#include <boost/type_index.hpp>
//] [/type_index_my_type_index_worldwide_macro]

View File

@@ -1,4 +1,4 @@
// Copyright 2013-2023 Antony Polukhin
// Copyright 2013-2024 Antony Polukhin
// Distributed under the Boost Software License, Version 1.0.
// (See the accompanying file LICENSE_1_0.txt

View File

@@ -1,5 +1,5 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

View File

@@ -1,5 +1,5 @@
//
// Copyright 2013-2023 Antony Polukhin.
// Copyright 2013-2024 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying

View File

@@ -1,5 +1,5 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying

View File

@@ -1,5 +1,5 @@
//
// Copyright 2013-2023 Antony Polukhin.
// Copyright 2013-2024 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying

View File

@@ -1,5 +1,5 @@
//
// Copyright 2013-2023 Antony Polukhin.
// Copyright 2013-2024 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying

View File

@@ -1,5 +1,5 @@
//
// Copyright 2013-2023 Antony Polukhin.
// Copyright 2013-2024 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying

View File

@@ -1,5 +1,5 @@
//
// Copyright 2013-2023 Antony Polukhin.
// Copyright 2013-2024 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html>
<!--
Copyright 2014-2023 Antony Polukhin
Copyright 2014-2024 Antony Polukhin
antoshkka at gmail dot com
Distributed under the Boost Software License,
@@ -31,7 +31,7 @@ boost-no-inspect
<a href="../../doc/html/boost_typeindex.html">../../doc/html/boost_typeindex.html</a>
</p>
<p>
&copy; 2014-2023 Antony Polukhin
&copy; 2014-2024 Antony Polukhin
</p>
</body>
</html>

View File

@@ -1,18 +1,21 @@
# Copyright 2012-2023 Antony Polukhin
# Copyright 2012-2024 Antony Polukhin
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#
require-b2 5.0.1 ;
import-search /boost/config/checks ;
import-search /boost/config/checks ;
import config : requires ;
import testing ;
import feature ;
import os ;
import ../../config/checks/config : requires ;
project
: source-location .
: requirements
<library>/boost/type_index//boost_type_index
[ requires cxx11_rvalue_references ]
;
@@ -46,11 +49,11 @@ lib test_lib_rtti_compat : test_lib_rtti_compat-obj : <link>shared $(nortti) $(c
exe testing_crossmodule_anonymous_no_rtti : testing_crossmodule_anonymous.cpp test_lib_anonymous_nortti : <rtti>off $(norttidefines) ;
test-suite type_index
:
[ run type_index_test.cpp ]
[ run type_index_runtime_cast_test.cpp ]
:
[ run type_index_test.cpp /boost/lexical_cast//boost_lexical_cast ]
[ run type_index_runtime_cast_test.cpp /boost/smart_ptr//boost_smart_ptr ]
[ run type_index_constexpr_test.cpp ]
[ run type_index_test.cpp : : : <rtti>off $(norttidefines) : type_index_test_no_rtti ]
[ run type_index_test.cpp /boost/lexical_cast//boost_lexical_cast : : : <rtti>off $(norttidefines) : type_index_test_no_rtti ]
[ run ctti_print_name.cpp : : : <test-info>always_show_run_output ]
[ run testing_crossmodule.cpp test_lib_rtti ]
[ run testing_crossmodule.cpp test_lib_nortti : : : <rtti>off $(norttidefines) : testing_crossmodule_no_rtti ]
@@ -65,25 +68,25 @@ test-suite type_index
# Mixing RTTI on and off
# MSVC sometimes overrides the /GR-, without `detect_missmatch` this test may link.
# TODO: Disabled on MSVC. Enable again when there'll be an understanding of how to write this test correctly wor MSVC.
# TODO: Disabled on MSVC. Enable again when there'll be an understanding of how to write this test correctly wor MSVC.
[ link-fail testing_crossmodule.cpp test_lib_rtti : $(nortti) <toolset>msvc:<build>no : link_fail_nortti_rtti ]
[ link-fail testing_crossmodule.cpp test_lib_nortti : <toolset>msvc:<build>no : link_fail_rtti_nortti ]
[ run testing_crossmodule.cpp test_lib_rtti_compat : : : $(nortti) $(compat) : testing_crossmodule_nortti_rtti_compat ]
[ run testing_crossmodule.cpp test_lib_nortti_compat : : : $(compat) : testing_crossmodule_rtti_nortti_compat ]
;
# Assuring that examples compile and run. Adding sources from `examples` directory to the `type_index` test suite.
# Assuring that examples compile and run. Adding sources from `examples` directory to the `type_index` test suite.
for local p in [ glob ../examples/*.cpp ]
{
# RTTI on
type_index += [ run $(p) ] ;
type_index += [ run $(p) /boost/unordered//boost_unordered : : : <include>../examples ] ;
# RTTI off
local target_name = $(p[1]:B)_no_rtti ;
if $(target_name) != "table_of_names_no_rtti"
{
type_index += [ run $(p) : : : <rtti>off $(norttidefines) : $(target_name) ] ;
type_index += [ run $(p) /boost/unordered//boost_unordered : : : <include>../examples <rtti>off $(norttidefines) : $(target_name) ] ;
}
}

View File

@@ -2,7 +2,7 @@
# subject to the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#
# Copyright 2016-2023 Antony Polukhin.
# Copyright 2016-2024 Antony Polukhin.
#
# See https://svn.boost.org/trac/boost/wiki/TravisCoverals for description of this file

View File

@@ -1,5 +1,5 @@
// Copyright Klemens Morgenstern, 2012-2015.
// Copyright 2019-2023 Antony Polukhin.
// Copyright 2019-2024 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at

View File

@@ -1,5 +1,5 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at

View File

@@ -1,5 +1,5 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying

View File

@@ -1,5 +1,5 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying

View File

@@ -1,5 +1,5 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying

View File

@@ -1,5 +1,5 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying

View File

@@ -1,5 +1,5 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at

View File

@@ -1,5 +1,5 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at

View File

@@ -1,5 +1,5 @@
//
// Copyright 2018-2023 Antony Polukhin.
// Copyright 2018-2024 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at

View File

@@ -1,5 +1,5 @@
//
// Copyright 2015-2023 Antony Polukhin.
// Copyright 2015-2024 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at

View File

@@ -1,5 +1,5 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at

View File

@@ -1,16 +1,15 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#include <boost/type_index/ctti_type_index.hpp>
#include <boost/type_traits/alignment_of.hpp>
int main() {
BOOST_STATIC_ASSERT_MSG(
boost::alignment_of<boost::typeindex::detail::ctti_data>::value == boost::alignment_of<char>::value,
static_assert(
alignof(boost::typeindex::detail::ctti_data) == alignof(char),
"Alignments of boost::typeindex::detail::ctti_data and char differ. "
"It is unsafe to reinterpret_cast between them."
);

View File

@@ -1,5 +1,5 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at

View File

@@ -1,5 +1,5 @@
//
// Copyright 2012-2023 Antony Polukhin.
// Copyright 2012-2024 Antony Polukhin.
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at