Skip to content

tr1 tests are misusing initializer_list #1184

@AlexGuteniev

Description

@AlexGuteniev

initializer_list does not have a constructor that takes a pair of pointers - it is implementation detail.

Occurrences are in tr1 tests. Search for initializer_list and inspect each use.

initializer_list should probably be kept for cases where it is created from an array created by initializer_list, just skip proxy array. Otherwise, should use iterator range constructor:

Some of the occurrences:

char arr[] = {"012"};
STD initializer_list<char> ilist1(&arr[0], &arr[1]);
STD initializer_list<char> ilist2(&arr[1], &arr[3]);
STD initializer_list<char> ilist3(&arr[0], &arr[3]);

const char* data = "abc";
STD initializer_list<char> init(data, data + CSTD strlen(data));

STD seed_seq seq2(STD initializer_list<Uint32>(&arr1[0], &arr1[5]));

CHECK_INT(rng_t::initialization_multiplier, 1812433253);

dist_t dist1(STD initializer_list<double>(vec.data(), vec.data() + vec.size()));

CHECK(par0 == dist_t::param_type(STD initializer_list<double>(vec.data(), vec.data() + vec.size())));

double arr[] = {1.0, 1.1, 1.2, 1.3, 1.4};
dist_t dist3(STD initializer_list<double>(&arr[0], &arr[5]), myfn);

CHECK(dist3.param() == dist_t::param_type(STD initializer_list<double>(&arr[0], &arr[5]), myfn));

double arr[] = {1.0, 1.1, 1.2, 1.3, 1.4};
dist_t dist3(STD initializer_list<double>(&arr[0], &arr[5]), myfn);

CHECK(dist3.param() == dist_t::param_type(STD initializer_list<double>(&arr[0], &arr[5]), myfn));

Metadata

Metadata

Assignees

No one assigned

    Labels

    fixedSomething works now, yay!testRelated to test code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions