Hi all
Thanks for the replies. After some testing it seems like I dont need the
unsigned stuff and the functions seems to work fine with just a regular
int variable. The functions I wanted to use were just small parts of a
program and in that program bitmap images were loaded and image data
stored as a unsigned char* (for bitmaps unsigned char are often used due
to the 0-255 property I believe). I thought the simpliest solution was
to stick to the original set up (so replicating the variables) but it
seems that is not necessary which make things easier.
However, I got curious how to handle this if I need it.
First, I still dont get the difference between R raw and unsigned char
(if there is one). E.g.
this:
unsigned char a = 'b';
cout << hex << a << endl;
equals
> charToRaw("b")
[1] 62
So can unsigned char be used within Rcpp with RawVector?
For example, is it possible to go from int/char to raw using Rcpp? Or is
the recommended way to use unsigned char to go outside Rcpp as Tim
suggested?
Again, thanks for the input,
Gustaf
On 2014-10-21 10:27, Tim Keitt wrote:
On Mon, Oct 20, 2014 at 2:17 PM, Gustaf Granath
<gustaf.gran...@gmail.com <mailto:gustaf.gran...@gmail.com>> wrote:
Hi
Im trying to use some C++ functions in R. However, these functions
are build around unsigned char* variables (1D array). I have for
example a large matrix in R that represents black (e.g. 1-bit
image, 0 and 1s). I cant find a solution to convert a character
vector into unsigned char* within Rcpp. Im new to Rcpp and C++ so
I might have missed something obvious here. Please direct me to
resources on this topic (google did not help much).
A start:
SEXP test(SEXP cM){
CharacterVector Vc(cM);
int n = Vr.size();
RawVector x(n); //is this the same as unsigned char* ?
//I tried to fill it with char*(Mr)
but I didnt succeed
}
I tend to go through the standard library as its less of a black box.
Try creating a std::string and appending your chars to that string.
Then call obj.c_str() to get the C-style array of chars. Or push the
chars onto a std::vector and do something like &obj[0] to get a 1-D array.
THK
Thanks,
Gustaf
--
Gustaf Granath (PhD)
Post doc
McMaster University
School of Geography & Earth Sciences
_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
<mailto:Rcpp-devel@lists.r-forge.r-project.org>
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
--
http://www.keittlab.org/
--
Gustaf Granath (PhD)
Post doc
McMaster University
School of Geography & Earth Sciences
_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel