2
0
mirror of https://github.com/boostorg/wave.git synced 2026-01-27 07:22:15 +00:00
Commit Graph

395 Commits

Author SHA1 Message Date
Jeff Trull
8536634396 Deprecate C++03 and re-deprecate the old preprocessor hooks (#104)
Targeting a one year transition period for C++03 -> C++11 and one release less to finally get off the old hooks - assuming there are even any users of them.

Also added documentation per @pdimov recommendations at https://pdimov.github.io/articles/phasing_out_cxx03.html#_suggested_policy
2020-06-30 12:24:00 -07:00
Jeff Trull
ee0a7c14c5 Implement __has_include() (#102)
Resolve #96 by introducing C++17 feature (and frequent vendor extension) __has_include(), along with appropriate unit tests and documentation updates
2020-06-27 07:22:52 -07:00
Jeff Trull
6fd0da8780 Rename include guard macros that don't begin with BOOST_ 2020-06-15 10:52:30 -07:00
Glen Fernandes
5cd3f92597 Simplify allocator use via core/allocator_access 2020-05-26 09:15:34 -04:00
Jeff Trull
895ea836e9 Remove unused headers
Reduce build time by:
- using iosfwd instead of iostream, where possible
- where iostream is necessary but only used for debugging,
  making its inclusion conditional
- removing old C-style headers

I used IWYU to guide this work
2020-05-19 10:41:22 -07:00
Jeff Trull
2e8eeeeb4d Add BOOST_OVERRIDE to virtual functions in derived classes (#89) 2020-04-13 21:12:34 -07:00
Jeff Trull
3b6df8adb1 Include __LINE__, __FILE__, __INCLUDE_LEVEL__, and __VA_OPT__ in hooks (#87)
* Run hooks for certain predefined object-like macros

These are the "dynamic" macros with their own special execution path.
Most predefined macros can be computed at startup time; those were
already covered by the normal expansion code.

*  __VA_OPT__ is supported as a function-like macro

It is referred to as such in the proposal. __VA_ARGS__ is not supported, under the theory that it represents a parameter or set of parameters, and no hooks are called for parameter substitutions.
2020-04-12 12:40:03 -07:00
Jeff Trull
016638e6ae Fix more allocator traits (#85)
Finish the process of replacing allocator member types with allocator traits using an approach suggested by @glenfe.
2020-04-10 08:23:10 -07:00
Jeff Trull
e95a01453c Add error checks for a few issues identified by re2c (#82)
- "undefined" input sequences that should in theory never happen
- control characters in C++11 character and string literals
2020-03-18 21:21:59 -07:00
Jeff Trull
b68940a83b Disallow mixed-case long long integer literals (#80)
- Update all four lexers to allow ll/LL but not lL/Ll
- Add unit tests for checking
- Remove invalid token from test
2020-03-15 22:54:01 -07:00
Jeff Trull
ec0c8c8603 Implement C++20 features (#75)
* Introduce support for C++20 preprocessor features

- add __VA_OPT__ feature to variadic macros
- allow supplying 0 variadic arguments in more cases
- add related unit tests
2020-03-06 11:48:50 -08:00
Laurent Stacul
861d4f35bb Fix compilation issue caused by std::allocator member removal in C++20 2020-02-19 16:15:51 +00:00
Jeff Trull
9413a718f6 tighten up effect of SUPPORT_INCLUDE_NEXT 2020-02-09 15:05:19 -08:00
Josh Guffin
0bd3003b68 Fix off-by-one error 2020-01-13 21:13:50 -08:00
Conrad Poelman
ead900d585 Rename typedef "pointer" to fix MSVC warning 4458
MSVC emits warning 4458 about the local typedef "pointer" shadowing the class member typedef "pointer". This fix renames the local typedef to "value_pointer" to eliminate the warning.
2019-11-22 13:32:14 -05:00
Hartmut Kaiser
6da3e03814 Merge pull request #37 from rlenhardt/wave_utf8
use boost filesystem streams in wave to enable utf-8 paths in includes
2018-10-05 08:15:07 -05:00
Hartmut Kaiser
f60f5bc15e Merge pull request #35 from Kojoley/fix-util-cpp_macromap-unused-local-typedef
util/cpp_macromap.hpp: Fixed unused local typedef warning
2018-10-02 10:11:54 -05:00
Nikita Kniazev
5a5e06f8c4 util/cpp_macromap.hpp: Fixed unused local typedef warning
boost/wave/util/cpp_macromap.hpp:586:69: warning: typedef 'iterator_type' locally defined but not used [-Wunused-local-typedefs]
2018-10-02 17:43:40 +03:00
Nikita Kniazev
f8358c02c1 util/cpp_iterator.hpp: Fixed conversion warning
boost/wave/util/cpp_iterator.hpp(815): warning C4267: '+=': conversion from 'size_t' to 'unsigned int', possible loss of data
2018-10-02 17:23:58 +03:00
Robert Lenhardt
73d3e36637 always use boost filesystem streams to open files 2018-09-28 16:22:34 +02:00
Jan Beich
0e25913e02 Avoid using wrong T_DIVIDE on BSDs
In file included from libs/wave/src/instantiate_re2c_lexer.cpp:29:
In file included from ./boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp:38:
In file included from ./boost/wave/cpplexer/re2clex/cpp_re.hpp:379:
cpp.re:189:7: error: cannot initialize return object of type 'boost::wave::token_id' with an rvalue of type 'int'
    { BOOST_WAVE_RET(T_DIVIDE); }
      ^~~~~~~~~~~~~~~~~~~~~~~~
./boost/wave/cpplexer/re2clex/cpp_re.hpp:65:16: note: expanded from macro 'BOOST_WAVE_RET'
        return (i);                                                           \
               ^~~
2018-04-10 17:18:41 +00:00
Hartmut Kaiser
6ca4f8229d Merge pull request #29 from jefftrull/fixing_cpp11_fmt_specs_lc
Fixing cpp11 format specs
2017-11-30 20:50:28 -06:00
Hartmut Kaiser
9dc6123233 Merge pull request #26 from jefftrull/fixing_msvc_symbol_exports
Resolve link errors in MSVC builds by exporting symbols
2017-11-30 20:50:17 -06:00
Jeff Trull
1d81ffbc2a Clean up indentation 2017-11-30 12:22:28 -08:00
Jeff Trull
418c7c11b5 Replace use of C++11 "z" printf format modifier with lexical_cast 2017-11-30 11:29:15 -08:00
Jeff Trull
06c69a68d4 Use class-wide symbol exporting for conciseness 2017-11-30 08:25:21 -08:00
Hartmut Kaiser
6ea5d5dcc6 Merge pull request #27 from jefftrull/fixing_unbalanced_if_fname
Force normalized paths to use platform path dividers
2017-11-30 07:43:37 -06:00
Jeff Trull
856b799f3e Force normalized paths to use platform path dividers 2017-11-29 22:39:27 -08:00
Jeff Trull
18556324a8 Resolve link errors in MSVC builds by exporting symbols 2017-11-29 19:24:38 -08:00
Jeff Trull
880ee59412 Remove comparisons vs. default-initialized (and thus singular) iterators 2017-11-29 17:39:14 -08:00
Jeff Trull
c74492a208 Remove inadvertent newline from end of test file
Also tweak generated file to reflect source and avoid future speed bumps
2017-11-28 05:37:16 -08:00
Jeff Trull
1fde04d215 Repair C++11 raw string literal lexing, support custom delimiters, add tests 2017-11-27 19:26:11 -08:00
Jeff Trull
e941cb5806 Allow lexer input iterators to be Forward or better
This change is implemented primarily by templating the Scanner class
on the lexer IteratorT and using that type for three scanner data
members.  In addition we make use of std::distance/std::advance where
possible so we don't lose performance on RandomAccess inputs.
2017-11-22 09:04:02 -08:00
Abel Sinkovics
358a0e9668 Fix including header file without newline at the end 2017-09-18 22:25:52 +02:00
Abel Sinkovics
972461234d Fix reporting missing #endif when there is no new line after #if or #else 2017-09-18 22:02:57 +02:00
Abel Sinkovics
a53b51e440 Fix #line directive without new line at the end of a file 2017-09-17 15:35:37 +02:00
Abel Sinkovics
3c8b90bf60 Accept files with preprocessor directive in last line and no new line in C++11 mode. 2017-09-17 13:49:36 +02:00
Abel Sinkovics
4c4cc7e2ff Don't emit a warning about missing new line at end of file in C++11 mode 2017-09-16 22:49:30 +02:00
Hartmut Kaiser
e7cadc39df Fixed sprintf warnings 2017-09-02 13:05:03 -05:00
Hartmut Kaiser
0a949dadcc Removing endline whitespace 2017-09-02 10:03:22 -05:00
Hartmut Kaiser
20d4dd1f81 Fixing #1 2017-09-02 10:02:53 -05:00
Hartmut Kaiser
78f971894f Merge pull request #10 from hia3/develop
Don't try to access act_token when it is not valid
2017-02-17 20:17:59 -06:00
hia3
f673ca94bc Don't try to access act_token when it is not valid
lex_token::get_value assumes that lex_token::data is not NULL. When it
is NULL it causes UB detectable by clang's AddressSanitizer:

cpp_lex_token.hpp:242:57: runtime error: member call on null pointer of
type 'boost::wave::cpplexer::impl::token_data...'
2017-02-18 04:51:28 +03:00
sms
9370702de4 Replaced conditional by an assert() 2016-10-05 22:28:03 +03:00
sms
011ce71072 Remove fs access, step 2 2016-10-05 20:13:20 +03:00
Arash
cc5e0bafb7 Preventing macro repetition.
Define repetition must be avoided to prevent clash with the other libraries.

A clash example is here:
https://github.com/Arash-codedev/Simple-Web-Server/blob/master/http_examples.cpp#L5
2016-09-05 13:15:23 +10:00
Lauri Nurmi
2d86dbe53a Fix spelling of "occurr*". 2015-04-03 18:42:08 +03:00
Stephen Kelly
44c72a10dc Wave: Remove obsolete MSVC version checks.
[SVN r85933]
2013-09-26 09:41:18 +00:00
Hartmut Kaiser
cbefee7438 Wave: removed code under SGI's license as this is incompatible with Boost
[SVN r85645]
2013-09-10 22:29:46 +00:00
Hartmut Kaiser
4c9bdad5d0 Wave: Removing last BOOST_FALLTHROUGH
[SVN r84013]
2013-04-22 17:13:14 +00:00