mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
Core: ValueArray/Map::Pick fixed for GCC, CLANG (11)
git-svn-id: svn://ultimatepp.org/upp/trunk@7304 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
0028f31751
commit
0ba9ff4ed0
5 changed files with 13 additions and 9 deletions
|
|
@ -17,7 +17,7 @@ CONSOLE_APP_MAIN
|
|||
{
|
||||
Vector<Value> v;
|
||||
v << 5 << 1 << 3;
|
||||
ValueArray va(v);
|
||||
ValueArray va = pick(v);
|
||||
ASSERT(v.IsPicked());
|
||||
TEST(va, "[5, 1, 3]");
|
||||
Vector<Value> v2 = va.Pick();
|
||||
|
|
@ -48,4 +48,6 @@ CONSOLE_APP_MAIN
|
|||
|
||||
TEST(m, "{ 2: ahoj, 1: kamarade }");
|
||||
}
|
||||
|
||||
LOG("============== OK");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ using namespace Upp;
|
|||
|
||||
CONSOLE_APP_MAIN
|
||||
{
|
||||
StdLogSetup(LOG_COUT|LOG_FILE);
|
||||
|
||||
ValueArray va;
|
||||
va << 12 << 3 << 5 << 1 << 10;
|
||||
DUMP(va);
|
||||
|
|
|
|||
|
|
@ -176,9 +176,9 @@ public:
|
|||
bool operator>(const AIndex& x) const { return Compare(x) > 0; }
|
||||
#endif
|
||||
|
||||
V PickKeys() { return pick(key); }
|
||||
const V& GetKeys() const { return key; }
|
||||
bool IsPicked(void) const { return key.IsPicked(); }
|
||||
V PickKeys() pick_ { return pick(key); }
|
||||
const V& GetKeys() const { return key; }
|
||||
bool IsPicked(void) const { return key.IsPicked(); }
|
||||
|
||||
// Pick assignment & copy. Picked source can only Clear(), ~AIndex(), operator=, operator<<=
|
||||
|
||||
|
|
|
|||
|
|
@ -103,11 +103,11 @@ public:
|
|||
Index<K, HashFn> PickIndex() { return pick(key); }
|
||||
|
||||
const Vector<K>& GetKeys() const { return key.GetKeys(); }
|
||||
Vector<K> PickKeys() { return key.PickKeys(); }
|
||||
Vector<K> PickKeys() pick_ { return key.PickKeys(); }
|
||||
|
||||
const V& GetValues() const { return value; }
|
||||
V& GetValues() { return value; }
|
||||
V PickValues() { return pick(value); }
|
||||
V PickValues() pick_ { return pick(value); }
|
||||
|
||||
bool IsPicked() const { return value.IsPicked() || key.IsPicked(); }
|
||||
|
||||
|
|
|
|||
|
|
@ -216,12 +216,12 @@ class ValueArray : public ValueType<ValueArray, VALUEARRAY_V, Moveable<ValueArra
|
|||
public:
|
||||
ValueArray() { Init0(); }
|
||||
ValueArray(const ValueArray& v);
|
||||
explicit ValueArray(Vector<Value> rval_ values);
|
||||
ValueArray(Vector<Value> rval_ values);
|
||||
explicit ValueArray(const Vector<Value>& values, int deep);
|
||||
~ValueArray();
|
||||
|
||||
ValueArray& operator=(const ValueArray& v);
|
||||
ValueArray& operator=(Vector<Value> rval_ values) { *this = ValueArray(values); return *this; }
|
||||
ValueArray& operator=(Vector<Value> rval_ values) { *this = ValueArray(pick(values)); return *this; }
|
||||
|
||||
operator Value() const;
|
||||
ValueArray(const Value& src);
|
||||
|
|
@ -308,7 +308,7 @@ public:
|
|||
~ValueMap();
|
||||
|
||||
ValueMap& operator=(const ValueMap& v);
|
||||
ValueMap& operator=(VectorMap<Value, Value> rval_ m) { *this = ValueMap(m); return *this; }
|
||||
ValueMap& operator=(VectorMap<Value, Value> rval_ m) { *this = ValueMap(pick(m)); return *this; }
|
||||
|
||||
operator Value() const;
|
||||
ValueMap(const Value& src);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue