Commit Graph

1629 Commits

Author SHA1 Message Date
Crzyrndm
25d75cb5c3 complete the compiler set (gcc 6/7/8 + clang 4/5/6) 2018-07-14 21:27:54 +12:00
Crzyrndm
6b0fb72e78 make benchmarking conditional on other flags (static && release) 2018-07-14 21:13:57 +12:00
Crzyrndm
11573f45e6 Resolve remaining warnings 2018-07-14 20:25:10 +12:00
Crzyrndm
ea850b32d5 Add clang 4.0 to travis builds 2018-07-14 19:59:03 +12:00
Crzyrndm
9a33210144 Resolve warnings about global ctors and an unused variable
-- while unlikely to become an issue, ordering of ctors across source files is undefined and debugging issues related to it is not easy so just avoid that issue
2018-07-14 19:54:31 +12:00
Crzyrndm
d4cc538faf remove -Werror from clang build to allow CI to run through
-- fixing CI warnings 1 at a time would be a complete waste of time
-- blacklist some of the overkill warnings
2018-07-14 19:02:12 +12:00
Crzyrndm
c94fc5a999 Travis CI setup modifications 2018-07-14 18:35:48 +12:00
Crzyrndm
ddab6551b0 Add tests for functionality added to implement declared functionality 2018-07-13 17:14:07 +12:00
Crzyrndm
03020cc793 improved hyperlink implementation
- hyperlinks to cells and ranges are complete
- hyperlink::display is now set as well as the cell value (in excel these can be different)
-- if a cell is empty, display is equal to value text
-- if a cell has a value, display can be just about anything
- This version copies excel in that display is completely ignored once value is set
- All hyperlink tests are now part of the cell test suite (not the worksheet test suite which the majority were previously located)
2018-07-13 17:14:07 +12:00
Crzyrndm
054f509f7a fix missing return statement 2018-07-13 17:14:06 +12:00
Crzyrndm
1390d6a76e unimplemented functions in range and path 2018-07-13 17:14:06 +12:00
Crzyrndm
650bfeb7dd unimplemented functions under worksheet
-- NOTE: ctor was removed because it can't have been in use, and is duplicated by the overload below it. A pair parameter is only optimal in a very limited number of use cases, and then only slightly over the begin/end overload
2018-07-13 17:14:06 +12:00
Crzyrndm
f9b2ca5929 unimplemented functions under workbook/ 2018-07-13 17:14:06 +12:00
Crzyrndm
3d9e887d4a unimplemented functions under utils/ 2018-07-13 17:14:05 +12:00
Crzyrndm
95ca51e5c8 unimplemented functions under styles/ 2018-07-13 17:14:05 +12:00
Crzyrndm
49c4e725dc All unimplemented functions under cell/ 2018-07-13 17:14:05 +12:00
Crzyrndm
0d1bca3fd4 Remove hidden dependency on unordered map extraction order
Issue #279
2018-07-13 12:43:21 +12:00
Crzyrndm
7458426111 return by const ref 2018-07-13 12:43:21 +12:00
Crzyrndm
ec02121c15 Add debug output for a relationship mismatch 2018-07-13 12:43:21 +12:00
Crzyrndm
53c193433f Ensure worksheets get a unique internal filename
Issue #279
2018-07-13 12:43:20 +12:00
Crzyrndm
dcf50cb4cd return by const reference when possible 2018-07-13 12:43:20 +12:00
Crzyrndm
cf8991a234 no need to recreate the uri 2018-07-13 12:43:19 +12:00
Crzyrndm
322490b397 re-write workbook::reorder_relationships
Issue #279
2018-07-13 12:43:19 +12:00
Crzyrndm
c0a90ccb7f
Merge pull request #307 from Crzyrndm/dev-test-suite-improvements
Test suite improvements
2018-07-13 11:56:55 +12:00
Crzyrndm
24b4b6c628 declaration/definition switched files
For some reason, the declaration was in the source file. Don't ask why, I don't know
2018-07-13 11:43:13 +12:00
Crzyrndm
54b1affd1e Merge remote-tracking branch 'upstream/dev' into dev-test-suite-improvements
# Conflicts:
#	tests/workbook/workbook_test_suite.cpp
2018-07-13 11:38:56 +12:00
Crzyrndm
b9fbe6241a
Merge pull request #306 from Crzyrndm/dev-Issue298
Resolution to Issue 298
2018-07-13 11:33:05 +12:00
Crzyrndm
1ab25fa7fc
Merge branch 'dev' into dev-Issue298 2018-07-13 11:21:13 +12:00
Crzyrndm
7160b7494d
Merge pull request #305 from Crzyrndm/dev-iterator-improvements-2
Remove uses of std::iterator (deprecated in C++17) + improvements
2018-07-13 11:14:19 +12:00
Crzyrndm
ed84fe50d2
Merge pull request #303 from sukoi26/dev
error what(): xl/sharedStrings.xml: error: duplicate attribute #290
2018-07-13 11:04:21 +12:00
sukoi26
28a71572cf
update #290
suggested by  Crzyrndm
2018-07-10 09:32:34 +02:00
Crzyrndm
399b5e3775 Resolve CI build failure 2018-07-10 14:43:22 +12:00
Crzyrndm
cffb1ce345 restart CI 2018-07-10 14:12:26 +12:00
Crzyrndm
0e69ea95bf fix build errors, fix warning about pragma once in source file 2018-07-10 13:43:16 +12:00
Crzyrndm
bf5105f0a3 fix static initialisation order issues causing the tests vector to get reset 2018-07-10 13:37:34 +12:00
Crzyrndm
d603ee2106 Merge pull request #1 from Crzyrndm/dev-iterator-improvements
Dev: iterator improvements
2018-07-10 12:41:02 +12:00
Crzyrndm
4afc0963c6 add post (in/de)crement tests 2018-07-10 12:41:00 +12:00
Crzyrndm
9a82c4fab7 Comment fixes and clarifications 2018-07-10 12:40:58 +12:00
Crzyrndm
b95919323d add more tests for worksheet iterator, add operator--
* operator-- completes the naive bidirectional iterator requirements
* tests for various construction and assignment behaviours
* tests for iteration and dereferencing behaviours
2018-07-10 12:40:56 +12:00
Crzyrndm
04b50d9b8e worksheet_iterator - operator* const overloads
Users may still want to dereference a const iterator (note: not a const_iterator).
Also use the "reference" typedef to ensure there is only 1 source of information
2018-07-10 12:40:54 +12:00
Crzyrndm
a47985b2db worksheet_iterator - rule of 5/0
For rule of 5/0, where no implementation is required, all 5 operations have been declared as defaulted. This is less likely to forget definitions for all 5 if required
- removed forwarding of copy ctor to assignment (which was defaulted already) in favour of defaulted copy ctor
- added defaulted move assignment/ctor and destructor

Changed workbook reference to a pointer to allow tests to compile (reference isn't rebindable so defaulted assignment is equivalent to deleted)
2018-07-10 12:40:52 +12:00
Crzyrndm
eaf3c2a773 Remove double definition 2018-07-10 12:40:50 +12:00
Crzyrndm
62e0a7dd17 Revert "cell iterator - add operator->"
This reverts commit 1b705ae043ae1b43d0ecbc93da04c944383bb296.
2018-07-10 12:40:48 +12:00
Crzyrndm
bc8cd21d67 range_iterator - operator* const overloads
Users may still want to dereference a const iterator (note: not a const_iterator).
Also use the "reference" typedef to ensure there is only 1 source of information
2018-07-10 12:40:46 +12:00
Crzyrndm
1e66824af0 range_iterator - rule of 5/0
For rule of 5/0, where no implementation is required, all 5 operations have been declared as defaulted. This is less likely to forget definitions for all 5 if required
- removed forwarding of copy ctor to assignment (which was defaulted already) in favour of defaulted copy ctor
- added defaulted move assignment/ctor and destructor
2018-07-10 12:40:44 +12:00
Crzyrndm
dc020622c0 cell iterator - move parameters aren't const
copy/paste error
2018-07-10 12:40:42 +12:00
Crzyrndm
1c4f9c7ed2 cell iterator - add operator->
Implementation just forwards to operator*, but this is a typical operator in the iterator API and is suprising and inconvenient that it is not present
2018-07-10 12:40:40 +12:00
Crzyrndm
20e72d69e5 cell_iterator - operator* const overloads
Users may still want to derederence a const iterator (note: not a const_iterator).
Also use the "reference" typedef to ensure there is only 1 source of information
2018-07-10 12:40:38 +12:00
Crzyrndm
92ac3a2a2e cell_iterator - rule of 5/0
For rule of 5/0, where no implementation is required, all 5 operations have been declared as defaulted. This is less likely to forget definitions for all 5 if required
- removed forwarding of copy to assignment (which was defaulted already) in favour of defaulted copy ctor
- added defaulted move assignment/ctor and destructor
2018-07-10 12:40:36 +12:00
Joshua
744dd0afbb Remove uses of std::iterator (deprecated in C++17)
Detailed reasoning for the deprecation is provided by the paper proposing deprecation (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html) and a related LWG issue (https://cplusplus.github.io/LWG/issue2438).

This was the only issue preventing a clean compile with VS 15.7.2 with c++17/c++latest set as the target language

The issue could be resolved in two ways. Providing a custom replacement to std::iterator (a very simple structure) or by providing the 5 required typedefs. The only functional difference from my reading is that the typedefs are not immediately available to the implementer with the inheritance. I find the inline typedefs to be clearer hence the selection in this commit
2018-07-10 12:40:34 +12:00