Czy mogę założyć, że alokatory nie przechowują bezpośrednio swojej puli pamięci (i dlatego można je skopiować)?

Piszę kontener i chciałbym zezwolić użytkownikowi na korzystanie z niestandardowych alokatorów, ale nie mogę powiedzieć, czy powinienem przekazywać alokatory dookoła przez odniesienie lub wartość.

Czy jest zagwarantowane (lub przynajmniej rozsądne założenie, że), że obiekt alokatora będzienie zawiera bezpośrednio swoją pulę pamięci, a zatem skopiowanie alokatora byłoby w porządku i można się spodziewać, że pule pamięci alokatorów będą wzajemnie kompatybilne? A może zawsze muszę przekazywać alokatory według odniesienia?

(Odkryłem, że przekazywanie przez referencję szkodzi wydajności o współczynnik> 2, ponieważ kompilator zaczyna się martwić o aliasing, więc sprawia, że ​​mogę polegać na tym założeniu.)

questionAnswers(2)

yourAnswerToTheQuestion