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