Skip to content

Conversation

romainfrancois
Copy link
Collaborator

modeled after r_vector<r_string>::const_iterator::operator*.

This would otherwise fail as *it would give a nullptr

cpp11::cpp_function('SEXP premier(cpp11::list x) {
  auto it = x.begin(); 
  return *it;
}', quiet = FALSE)
#> clang++ -mmacosx-version-min=10.13 -std=gnu++11 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/Users/romainfrancois/.R/library/4.0/cpp11/include  -I/usr/local/include   -fPIC  -Wall -O3 -Wall -Wimplicit-int-float-conversion -c /private/var/folders/4b/hn4fq98s6810s4ccv2f9hm2h0000gn/T/Rtmp3hU7Um/file11df6d2e2e10/src/code_0.cpp -o /private/var/folders/4b/hn4fq98s6810s4ccv2f9hm2h0000gn/T/Rtmp3hU7Um/file11df6d2e2e10/src/code_0.o
#> clang++ -mmacosx-version-min=10.13 -std=gnu++11 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/Users/romainfrancois/.R/library/4.0/cpp11/include  -I/usr/local/include   -fPIC  -Wall -O3 -Wall -Wimplicit-int-float-conversion -c /private/var/folders/4b/hn4fq98s6810s4ccv2f9hm2h0000gn/T/Rtmp3hU7Um/file11df6d2e2e10/src/cpp11.cpp -o /private/var/folders/4b/hn4fq98s6810s4ccv2f9hm2h0000gn/T/Rtmp3hU7Um/file11df6d2e2e10/src/cpp11.o
#> clang++ -mmacosx-version-min=10.13 -std=gnu++11 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o /private/var/folders/4b/hn4fq98s6810s4ccv2f9hm2h0000gn/T/Rtmp3hU7Um/file11df6d2e2e10/src/code_0.so /private/var/folders/4b/hn4fq98s6810s4ccv2f9hm2h0000gn/T/Rtmp3hU7Um/file11df6d2e2e10/src/code_0.o /private/var/folders/4b/hn4fq98s6810s4ccv2f9hm2h0000gn/T/Rtmp3hU7Um/file11df6d2e2e10/src/cpp11.o -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation

premier(list(1, 1:10, letters))
#> [1] 1

Created on 2020-07-27 by the reprex package (v0.3.0.9001)

@jimhester
Copy link
Member

Could you add a test to https://github.com/r-lib/cpp11/blob/master/cpp11test/src/test-list.cpp that uses this overload, otherwise looks good to me.

@jimhester jimhester merged commit a01c074 into r-lib:master Jul 28, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants