Skip to content

Dimension error with r_vector #462

@fangzhou-xie

Description

@fangzhou-xie

Hi, thanks for this wonderful package. As I was playing around with the r_vector class, I found the following peculiar behavior and I think this might be a bug. Specifically, there should only be 6 elements, but when writing the dimensions to the vector, it returns an error saying there's 8 elements.

cpp11::cpp_function(
"
SEXP test() {
  using namespace cpp11;
  writable::r_vector<double> vec;  // Start empty

  // Dynamically add data
  vec.push_back(1.0);
  vec.push_back(2.0);
  vec.push_back(3.0);
  vec.push_back(4.0);
  vec.push_back(5.0);
  vec.push_back(6.0);

  message(\"size: %i\", vec.size());

  // Now decide dimensions (2 rows by 3 columns)
  vec.attr(R_DimSymbol) = writable::r_vector<int>({2, 3});

  // Create matrix from the vector
  // writable::doubles_matrix<> mat(vec.data());

  return(vec.attr(R_DimSymbol));
}
"
)
test()
#> size: 6
#> Error in test(): dims [product 6] do not match the length of object [8]

Created on 2025-07-21 with reprex v2.1.1

Disclaimer: This example was taken from some code snippets from Claude while I was trying to understand the internals of this package.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions