[GitHub] thrift pull request #1448: [WIP] Support compilation without Boost

2018-01-02 Thread Typz
Github user Typz commented on a diff in the pull request:

https://github.com/apache/thrift/pull/1448#discussion_r159267705
  
--- Diff: lib/cpp/src/thrift/processor/TMultiplexedProcessor.h ---
@@ -165,10 +166,11 @@ class TMultiplexedProcessor : public TProcessor {
 }
 
 // Extract the service name
-boost::tokenizer tok(name, 
boost::char_separator(":"));
-
 std::vector tokens;
-std::copy(tok.begin(), tok.end(), std::back_inserter(tokens));
+std::istringstream tokenStream(name);
+for (std::string token; std::getline(tokenStream, token, ':');) {
--- End diff --

std::getline is available also in pre-C++11 (though C++11 adds some 
overloads): http://en.cppreference.com/w/cpp/string/basic_string/getline

I would be OK with C++11, but this may not be applicable to all cases... 
Maybe a safer approach would be first allow use without boost (relying on 
C++11: i.e. this patch :-) ), then add C++11 requirement if this is acceptable.



---


[GitHub] thrift pull request #1448: [WIP] Support compilation without Boost

2017-12-22 Thread jeking3
Github user jeking3 commented on a diff in the pull request:

https://github.com/apache/thrift/pull/1448#discussion_r158557742
  
--- Diff: lib/cpp/src/thrift/processor/TMultiplexedProcessor.h ---
@@ -165,10 +166,11 @@ class TMultiplexedProcessor : public TProcessor {
 }
 
 // Extract the service name
-boost::tokenizer tok(name, 
boost::char_separator(":"));
-
 std::vector tokens;
-std::copy(tok.begin(), tok.end(), std::back_inserter(tokens));
+std::istringstream tokenStream(name);
+for (std::string token; std::getline(tokenStream, token, ':');) {
--- End diff --

getline may only be available in C++11 or later

As a project should we consider calling out 0.11.0 as the last version that 
will support C++03, and simplify this work?


---


[GitHub] thrift pull request #1448: [WIP] Support compilation without Boost

2017-12-22 Thread Typz
GitHub user Typz opened a pull request:

https://github.com/apache/thrift/pull/1448

[WIP] Support compilation without Boost

The goal of this series of patches is to support compiling Thrift library 
without boost: in C++11, most of the things are already integrated, and it is 
often not practical to integrate boost in embedded projects.

These patch use C++11 alternatives when possible, and default to Boost 
otherwise.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/Typz/thrift boost-removal

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/thrift/pull/1448.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #1448


commit 4b8688b0fab4624fed692e83f884307b32a463d1
Author: Francois Ferrand 
Date:   2017-12-11T17:18:51Z

Replace boost::noncopyable with a custom implementation

commit 657ba7028a32390a57ed34a66d51963daa50ee56
Author: Francois Ferrand 
Date:   2017-12-11T17:33:47Z

Replace boost::scoped_array with std::unique_ptr

Also replace boost::shared_array, since only scoped_array was needed.

commit c0b1bb1bd3eb623b3bd0145bec116d1b64b6aa68
Author: Francois Ferrand 
Date:   2017-12-12T09:10:50Z

Remove unused boost header inclusion

commit de1627987daebb5286998bfc13490be0af4e58a1
Author: Francois Ferrand 
Date:   2017-12-12T09:28:26Z

Replace boost::atomic with std::atomic

commit 4c6300a6d381fef36f6a139470c3f094759bb287
Author: Francois Ferrand 
Date:   2017-12-12T09:49:57Z

Replace boost::unique_ptr with std::unique_ptr

commit bb1c3e0cd9988efc3f1ede825a24041ea9574f67
Author: Francois Ferrand 
Date:   2017-12-12T10:22:14Z

Replace boost::tokenizer with std::getline

commit 939fbe89015bebf2e1223742ca217d1fbb1d0a90
Author: Francois Ferrand 
Date:   2017-12-12T11:03:28Z

Replace BOOST_STATIC_ASSERT with static_assert

commit 187487f8eab8b95b921d7ee6030f439ca4182214
Author: Francois Ferrand 
Date:   2017-12-12T14:08:06Z

Use fpclassify and signbit from std lib

commit 330d9f812d3a5157349d70ab322dad2715bbc72c
Author: Francois Ferrand 
Date:   2017-12-12T17:10:41Z

Use std::codecvt_utf8_utf16 for utf16 to utf8 conversion

commit e760eb4231710334b506df353918fbba73e5fe83
Author: Francois Ferrand 
Date:   2017-12-12T17:32:19Z

Replace boost::numeric_cast with std::numeric_limits

commit a13452891a4826e255053441a137796222ab9c75
Author: Francois Ferrand 
Date:   2017-12-14T10:52:16Z

Use ostringstream instead of boost::format

commit 8fb0c8461ddc974b2a7dc310e79f4501fc30341b
Author: Francois Ferrand 
Date:   2017-12-14T11:32:03Z

Replace BOOST_SCOPE_EXIT with unique_ptr and custom deleter

commit cfad8e6165d7c18de1f52ea9979a8bc9d1e3c13a
Author: Francois Ferrand 
Date:   2017-12-15T12:46:18Z

Remove use of boost::istarts_with and boost::iends_with




---